From e73902c41112ba28391f1b50c9447fb4d1e497d5 Mon Sep 17 00:00:00 2001 From: xiaomeng79 <496096100@qq.com> Date: Wed, 23 Jun 2021 17:39:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...06\205\345\255\230\347\256\241\347\220\206.md" | 2 ++ .../2k8s/service.md" | 15 +++++++++++++++ ...70\270\347\224\250\345\221\275\344\273\244.md" | 15 +++++++++++++++ .../0\347\233\256\345\275\225.md" | 4 +++- .../10Iass-Pass-Sass.md" | 3 +++ ...25\260\346\215\256\347\273\223\346\236\204.md" | 11 ++++++++++- .../5\347\274\223\345\255\230.md" | 13 +++++++++++++ 7 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 "03\345\256\271\345\231\250\345\222\214\351\233\206\347\276\244/2k8s/service.md" create mode 100644 "12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/10Iass-Pass-Sass.md" diff --git "a/01\350\257\255\350\250\200/1go/10\345\206\205\345\255\230\347\256\241\347\220\206.md" "b/01\350\257\255\350\250\200/1go/10\345\206\205\345\255\230\347\256\241\347\220\206.md" index 09c0283..f9962db 100644 --- "a/01\350\257\255\350\250\200/1go/10\345\206\205\345\255\230\347\256\241\347\220\206.md" +++ "b/01\350\257\255\350\250\200/1go/10\345\206\205\345\255\230\347\256\241\347\220\206.md" @@ -1,5 +1,7 @@ ## 内存管理 +- [Go垃圾回收之三色标记算法](https://cloud.tencent.com/developer/article/1608932) + #### 常见的GC模式 - 引用计数(销毁引用,计数器-1,为0,回收) diff --git "a/03\345\256\271\345\231\250\345\222\214\351\233\206\347\276\244/2k8s/service.md" "b/03\345\256\271\345\231\250\345\222\214\351\233\206\347\276\244/2k8s/service.md" new file mode 100644 index 0000000..89cbeb9 --- /dev/null +++ "b/03\345\256\271\345\231\250\345\222\214\351\233\206\347\276\244/2k8s/service.md" @@ -0,0 +1,15 @@ +## Service + +### type + +[k8s四种port解析](https://blog.csdn.net/a772304419/article/details/113447005) + +- nodePort: + + +### kube-proxy模式 + +- ip-tables模式:当service或者endpoints、pod发生变化时,kube-proxy会创建对应的iptables规则。 +- Userspace模式:这种模式时最早的,不过已经不推荐使用了,效率低,因为需要在内核态和用户态多次转换。 +- IPVS代理模式:当service有成千上万个的时候速度上会更占优势。而且有更多的lb策略。 + diff --git "a/04linux/1\345\270\270\347\224\250\345\221\275\344\273\244.md" "b/04linux/1\345\270\270\347\224\250\345\221\275\344\273\244.md" index 544af81..82bc2ac 100644 --- "a/04linux/1\345\270\270\347\224\250\345\221\275\344\273\244.md" +++ "b/04linux/1\345\270\270\347\224\250\345\221\275\344\273\244.md" @@ -86,4 +86,19 @@ $ dig +trace +nodnssec www.baidu.com ```shell script netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' +``` + +11. 查看打开文件句柄数排名 + +```shell script +lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more +``` + +12. 设置用户守护进程打开文件句柄数 + +```shell script +vim /etc/systemd/user.conf +vim /etc/systemd/system.conf +DefaultLimitNOFILE=100000 +DefaultLimitNPROC=65535 ``` \ No newline at end of file diff --git "a/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/0\347\233\256\345\275\225.md" "b/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/0\347\233\256\345\275\225.md" index cfd9d09..e57cedb 100644 --- "a/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/0\347\233\256\345\275\225.md" +++ "b/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/0\347\233\256\345\275\225.md" @@ -16,4 +16,6 @@ 8. [IPC](./8IPC.md) -9. [OSI模型](./9OSI模型.md) \ No newline at end of file +9. [OSI模型](./9OSI模型.md) + +10. [IaaS、PaaS、SaaS的区别](./10Iass-Pass-Sass.md) \ No newline at end of file diff --git "a/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/10Iass-Pass-Sass.md" "b/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/10Iass-Pass-Sass.md" new file mode 100644 index 0000000..2a5f33d --- /dev/null +++ "b/12\345\215\217\350\256\256\345\222\214\346\246\202\345\277\265/10Iass-Pass-Sass.md" @@ -0,0 +1,3 @@ +## IaaS、PaaS、SaaS的区别 + +[IaaS、PaaS、SaaS的区别](https://zhuanlan.zhihu.com/p/276054509) \ No newline at end of file diff --git "a/14\346\225\260\346\215\256\347\273\223\346\236\204\345\222\214\347\256\227\346\263\225/1\346\225\260\346\215\256\347\273\223\346\236\204.md" "b/14\346\225\260\346\215\256\347\273\223\346\236\204\345\222\214\347\256\227\346\263\225/1\346\225\260\346\215\256\347\273\223\346\236\204.md" index cf127c1..cd452f0 100644 --- "a/14\346\225\260\346\215\256\347\273\223\346\236\204\345\222\214\347\256\227\346\263\225/1\346\225\260\346\215\256\347\273\223\346\236\204.md" +++ "b/14\346\225\260\346\215\256\347\273\223\346\236\204\345\222\214\347\256\227\346\263\225/1\346\225\260\346\215\256\347\273\223\346\236\204.md" @@ -159,6 +159,9 @@ Tree:是n(n>=0)个节点的有限集T 二叉查找树要求,在树中的任意一个节点,左子树值<节点值<右子树值 +#### 平衡树 + +平衡树(Balance Tree,BT) 指的是,任意节点的子树的高度差都小于等于1。 ##### 特性 @@ -198,7 +201,13 @@ AVL树每次插入,删除,更新都要调整树,比较复杂,耗时,而红黑树 - 堆中每一个节点的值都必须大于等于(或小于等于)其子树中每个节点 - 大顶堆和小顶堆 - 插入一个数据的时候,我们把新插入的数据放到数组的最后,然后从从下往上堆化;删除堆顶数据的时候,我们把数组中的最后一个元素放到堆顶,然后从上往下堆化。这两个操作时间复杂度都是O(logn) - + +##### 最小四叉堆(高性能定时器) + +[go定时器](https://zhuanlan.zhihu.com/p/149518569) + +- 为什么使用四叉堆:1、上推节点快 2、对缓存友好(提高5%性能) + ##### 为什么堆排序没有快速排序快 - 堆排序数据访问的方式没有快速排序友好,跳着访问,对cpu不友好 diff --git "a/16\346\236\266\346\236\204/5\347\274\223\345\255\230.md" "b/16\346\236\266\346\236\204/5\347\274\223\345\255\230.md" index b193206..d57d9bd 100644 --- "a/16\346\236\266\346\236\204/5\347\274\223\345\255\230.md" +++ "b/16\346\236\266\346\236\204/5\347\274\223\345\255\230.md" @@ -20,7 +20,20 @@ 1. 缓存失效,加互斥锁,只有一个线程可以访问DB去请求数据缓存,其他线程sleep,然后再请求缓存 2. key不过期,维护一个假定过期时间,异步更新数据,性能好,代码复杂 3. 如果生成缓存数据十分耗时,需要主动更新缓存 + +#### 缓存一致性 + +- 原因: 数据更新的同时缓存数据没有实时更新 +- 解决: + 1. 主动更新 +#### 缓存 “无底洞” 现象 + +- 原因: 为了满足业务要求添加了大量缓存节点,客户端一次批量操作会涉及多次网络操作,这意味着批量操作的耗时会随着节点数目的增加而不断增大 +- 解决: + 1. 优化批量数据操作命令 + 1. 减少网络通信次数 + ### 缓存淘汰算法 - FIFO(First In First Out)先进先出,时间维度**缺点**:最早添加但也最常被访问 - LFU(Least Frequently Used)最少使用,频率维度**缺点**:历史访问次数过高,而迟迟不能被淘汰