Автоматизация управления ClickHouse-кластерами в Kubernetesсисадмина. ClickHouse operator? Что это? Программа, управляющая кластером ClickHouse в Kubernetes. Кодифицированные шаблоны. Кодифицированные best practices. ClickHouse operator? Зачем это? • Позволяет именно ClickHouse кластеризуется. • Позволяет легко автоматизировать типовые задачи. ClickHouse operator? Кому это надо? • Тем, кто находится в начале пути. • Тем, у кого есть типовая инсталляция. • много типовых задач, т.е. требуется автоматизация. ClickHouse operator – управление кластером как ОДНИМ РЕСУРСОМ ClickHouse Operator ClickHouseInstallation YAML file Лицензия: Apache 2.0, Распространяется0 码力 | 44 页 | 2.24 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理更加明确用的哪一种类型转换( cast ),从而避免一些像是 static_cast(ptr) 的错误 。 • 虽然作者也经常会忍不住在 zeno 中用 编译器默认生成的构造函数:无参数(小心 POD 陷阱!) • 除了我们自定义的构造函数外,编译器还会自动生成一些构造函数。 • 当一个类没有定义任何构造函数,且所有成员都有无参构造函数时,编译器会自动生成一 个无参构造函数 Pig() ,他会调用每个成员的无参构造函数。 这些类型被称为 POD ( plain-old-data )。 • POD 的存在是出于兼容性和性能的考虑。 << 取决于内存的随机值 编译器默认生成的构造函数:无参数( POD 陷阱解决方案) • 不过我们可以手动指定初始化 weight 为 0 。 • 通过 {} 语法指定的初始化值,会在编译器自 动生成的构造函数里执行。 编译器默认生成的构造函数:无参数( POD 陷阱解决方案,续) 器默认生成,可以都用 这两个显式地声明一下。 编译器默认生成的特殊函数:拷贝赋值函数 • 除了拷贝构造函数外,编译器默认还会生成这样一个重载’ =’ 这个运算符的函数: • Pig &operator=(Pig const &other); • 拷贝构造函数的作用是在 Pig 尚未初始化时,将另一个 Pig 拷贝进来,以初始化当前 Pig 。 • Pig pig = pig2; // 0 码力 | 96 页 | 16.28 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 14 C++ 标准库系列课 - 你所不知道的 set 容器• bool second; • }; 使用 C++17 的结构化绑定来拆解 pair • C++17 提供了结构化绑定 (structual binding) 的语法, 可以取出一个 POD 结构体 的所有成员, pair 也不例外 。 • auto [ok, it] = b.insert(3); • 等价于 • auto tmp = b.insert(3); • auto ok = 。 • 最常用的是调用 clear 函数 。 • 这和 vector 的 clear 函数 名字是一样的,方便记忆。 • void clear() noexcept; • set &operator=(initializer_listlst); set 的大小(元素个数) • 和 vector 一样, set 也有 个 size() 函数查询其中元素 个数。 • size_t 0 码力 | 83 页 | 10.23 MB | 1 年前3
KubeCon2020/大型Kubernetes集群的资源编排优化Node2 Kube-scheduler Pod Request Load Level Request Load Level Real Load Level Real Load Level Assigned to Node2 The native K8S scheduling is based on the resource request of Pod. However, in many nodes have high resource requests but low load. Dynamic-Scheduler Node1 Node2 Kube-scheduler Pod Request Load Level Request Load Level Real Load Level Real Load Level Assigned to Node1 Dynamic-scheduler 5m Load 50% 1h Load 75% 5m Load 40% 1h Load 30% Dynamic-scheduler 5m Load >65% filtered Pod 1h Load >70% filtered Add node1 to priority candidate list Dynamic-Scheduler Priority Node2 Node30 码力 | 27 页 | 3.91 MB | 1 年前3
基于Rust-vmm实现Kubernetes运行时-kubernetes-tim-allclair-google Kubernetes has many layers of isolation, but we will focus on pod-to-pod isolation in this talk, AKA Sandbox Isolation. • Container Escape docker.vh.neargle.com:8888/ COW vulnerability −CVE-2019-5736 Docker runc vulnerability −CVE-2019-14271 Docker CP vulnerability Pod Isolation Challenges • Noisy neighbor −Impact performance on CPU, Memory, Bandwidth, Buffer IO, runsc container container Pod QEMU VMM Firecracker VMM Rust-VMM container container Pod Sandbox Agent gVisor Guest Kernel O C I Gofer container container Pod Sandbox Sentry KVM/ptrace0 码力 | 27 页 | 34.17 MB | 1 年前3
Secure your microservices with istio step by stepFormat: "spiffe:///ns/ /sa/ ” ● istioctl proxy-config secret <POD> -o json | jq '.dynamicActiveSecrets[0].secret.tlsCertificate.certificateChain.i nlineBytes' -r | | openssl x509 -noout -text -in - ● Part of cluster config in envoy config-dump ○ kubectl exec <POD> -c istio-proxy curl localhost:15000/config_dump #IstioCon Istio identity – check configuration result 0 码力 | 34 页 | 67.93 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅https://www.zhihu.com/question/38857029 并行筛选 7 彻底避免了互斥量,完全通过预先准备好的大小,配合 atomic 递增索引批量写入。同时用小彭老师拍脑袋想到的 pod 模板类,使得 vector 的 resize 不会零初始化其中的 值。 加速比: 6.26 倍 并行筛选 8 (不推荐) 而是用 std::vector 作为 parallel_reduce 的元0 码力 | 116 页 | 15.85 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针T[n] 分配的(动态数组)请用 delete[] 释 放。 • 使用 new T 分配的(单个元素)请用 delete 释放。 • 不要混用,否则可能会出错,也可能不出错,取决于 T 是否为 POD 类型,以及标准库的具体实现。 数组作为函数参数和返回有哪些坑? 函数需要输入或输出数组?分类讨论 • 第一种情况,函数只是读取这个数组,不修改数组: • void func(const T*0 码力 | 128 页 | 2.95 MB | 1 年前3
C++23: An Overview of Almost All New and Updated FeaturesC++23 Core Language Explicit Object Parameters if consteval Multidimensional Subscript Operator Attributes on Lambda-Expressions Literal Suffix for size_t auto(x): decay-copy in The Language C++23 Core Language Explicit Object Parameters if consteval Multidimensional Subscript Operator Attributes on Lambda-Expressions Literal Suffix for size_t auto(x): decay-copy in The Language C++23 Core Language Explicit Object Parameters if consteval Multidimensional Subscript Operator Attributes on Lambda-Expressions Literal Suffix for size_t auto(x): decay-copy in The Language0 码力 | 105 页 | 759.96 KB | 6 月前3
C++20: An (Almost) Complete Overviewatomic waiting, latches, and barriers std::atomic_ref Designated Initializers Spaceship Operator <=> Range-based for Loop Initializer Non-Type Template Parameters [[likely]] and [[unlikely]] std::string aString; }; Data d { .aString = "Hello" };48 Spaceship Operator <=> Official name: three-way comparison operator Three-way: comparing 2 objects and then comparing result with 0 Similar to C-style strcmp() returning neg. value, 0, or pos. value49 Spaceship Operator <=> Common case: auto X::operator<=>(const Y&) const = default; Compiler generates all 6 comparison operators0 码力 | 85 页 | 512.18 KB | 6 月前3
共 21 条
- 1
- 2
- 3













