<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[老猿说说专栏]]></title><description><![CDATA[老猿说说专栏]]></description><link>https://blog.youkuaiyun.com/zlfing</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zlfing]]></copyright><item><title><![CDATA[CSI-external-provisioner]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/147230113</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/147230113</guid><author>zlfing</author><pubDate>Mon, 14 Apr 2025 23:01:01 +0800</pubDate><description><![CDATA[这段代码是一个复杂的CSI Provisioner实现，它集成了Kubernetes客户端、CSI驱动、度量收集、拓扑感知、容量管理等多个组件。通过精心设计的架构和模块化的代码，它能够在Kubernetes集群中高效地提供和管理持久卷。]]></description><category></category></item><item><title><![CDATA[CSI-PVController-claimWorker]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/147196669</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/147196669</guid><author>zlfing</author><pubDate>Sun, 13 Apr 2025 20:27:12 +0800</pubDate><description><![CDATA[claim worker中循环执行workFunc()]]></description><category></category></item><item><title><![CDATA[CSI-PVController-volumeWorker]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/147196659</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/147196659</guid><author>zlfing</author><pubDate>Sun, 13 Apr 2025 20:26:03 +0800</pubDate><description><![CDATA[与claim worker流程一样，从volumeQueue中取数据，也就是取出的都是PV，如果informer中有这个pv，就进入update流程。]]></description><category></category></item><item><title><![CDATA[CSI-PVController]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/147193210</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/147193210</guid><author>zlfing</author><pubDate>Sun, 13 Apr 2025 18:31:49 +0800</pubDate><description><![CDATA[与claim worker流程一样，从volumeQueue中取数据，也就是取出的都是PV，如果informer中有这个pv，就进入update流程。周期性的List pv pvc放到对应的claimoueue&volumeQueue里面重新处理。如果pv没有更新(与缓存中一致)，就直接返回处理下一个，如果有更新，执行syncVolume。增加pvc索引pod。]]></description><category></category></item><item><title><![CDATA[Koordinator-NodeSLO]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/147169114</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/147169114</guid><author>zlfing</author><pubDate>Sat, 12 Apr 2025 18:55:55 +0800</pubDate><description><![CDATA[【代码】Koordinator-NodeSLO。]]></description><category></category></item><item><title><![CDATA[Koordinator-nodeMetricController]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/147168694</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/147168694</guid><author>zlfing</author><pubDate>Sat, 12 Apr 2025 18:08:33 +0800</pubDate><description><![CDATA[获取NodeColocationStrategy，再从上面获取NodeMetricCollectPolicy。]]></description><category></category></item><item><title><![CDATA[Koordinator-CpuEvictor]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/146949111</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/146949111</guid><author>zlfing</author><pubDate>Wed, 02 Apr 2025 17:06:29 +0800</pubDate><description><![CDATA[初始化CpuEvictor，也是一个framework.QOSStrategy。参数：驱逐间隔1秒、冷却时长20秒、metric采集间隔1秒、stateInformer、metric缓存。]]></description><category></category></item><item><title><![CDATA[Koordinator-Metric查询]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/146704207</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/146704207</guid><author>zlfing</author><pubDate>Sat, 29 Mar 2025 18:14:11 +0800</pubDate><description><![CDATA[以CollectAllPodMetricsLast()举例，看看koordinator怎样使用tsdb进行查询。]]></description><category></category></item><item><title><![CDATA[Koordinator-QOSManager]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/146658391</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/146658391</guid><author>zlfing</author><pubDate>Sat, 29 Mar 2025 12:37:23 +0800</pubDate><description><![CDATA[构建opt，包含cgroupReader、statesInformer、metric缓存、eventRecorder、k8s客户端、驱逐版本、Qos配置、metricAdvisor配置。初始化eventRecord、cgroupReader、evictor。构建context，包含evictor和策略map。]]></description><category></category></item><item><title><![CDATA[Koordinator-NodeMetricInformer]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/146658329</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/146658329</guid><author>zlfing</author><pubDate>Sat, 29 Mar 2025 12:36:32 +0800</pubDate><description><![CDATA[核心方法collectMetrics()，采集nodeMetricInfo, podMetricInfo, prod。把采集的数据放入nodeMetricStatus，node对应的更新NodeMetric CR。nodeMetricInformer也在这里进行了Start()继续往下看，stateInformer启动plugin。一开始的时候作为一个Plugin进行了初始化。nodeMetricInformer在。再看下nodeMetric的数据结构。]]></description><category></category></item><item><title><![CDATA[Koordinator-Predict]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/146658286</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/146658286</guid><author>zlfing</author><pubDate>Sat, 29 Mar 2025 12:35:39 +0800</pubDate><description><![CDATA[遍历所有的pair，最大检查个数和间隔时间判断下，然后调用model的SaveToCheckpointer方法。目前只看到了怎样把数据放入到model中，还没有看到怎样去使用model数据。获取node最近cpu/mem使用率，更新nodeid model。不存在对应model则设置一下model，调用AddSample()遍历所有的model，若上次更新信息大于配置的过期时长，则删除。更新node priority class model。接下来去找下哪里使用了model。遍历所有的model。]]></description><category></category></item><item><title><![CDATA[混部源码分析（draft)]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/146475927</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/146475927</guid><author>zlfing</author><pubDate>Mon, 24 Mar 2025 14:38:35 +0800</pubDate><description><![CDATA[准备写一些管云混部的项目源码分析。]]></description><category></category></item><item><title><![CDATA[版本号后面的字母含义]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/113850393</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/113850393</guid><author>zlfing</author><pubDate>Thu, 18 Feb 2021 17:37:36 +0800</pubDate><description><![CDATA[RC：版本 (Release Candidate)

　　Candidate是候选人的意思，用在软件上就是候选版本。Release是发行、发布的意思。Release.Candidate.就是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能，但是到了RC版本，几乎就不会加入新的功能了，而主要着重于除错!



GA版本

在很多软件下载的时候，你会发觉标识为GA或者CRx等。比如MySQL和JBoss都采用这种标识。那什么是GA呢。GA是GenerallyAvailable的缩写，意思.]]></description><category></category></item><item><title><![CDATA[线程池面试题]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/111505432</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/111505432</guid><author>zlfing</author><pubDate>Tue, 22 Dec 2020 09:43:44 +0800</pubDate><description><![CDATA[#md#
1  面试题
1.1 创建子线程时，子线程是得不到父线程的 ThreadLocal，有什么办法可以解决这个问题？
答：这道题主要考察线程的属性和创建过程，可以这么回答。
可以使用 InheritableThreadLocal 来代替 ThreadLocal，ThreadLocal 和 InheritableThreadLocal 都是线程的属性，所以可以做到线程之间的数据隔离，在多线程环境下我们经常使用，但在有子线程被创建的情况下，父线程 ThreadLocal 是无法传递给子线程的，但 Inhe]]></description><category></category></item><item><title><![CDATA[Future、ExecutorService]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/111505295</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/111505295</guid><author>zlfing</author><pubDate>Tue, 22 Dec 2020 09:36:47 +0800</pubDate><description><![CDATA[1  整体架构
画了一个关于线程 API 之间关系的依赖图，如下：
在上一章节，我们说了 Thread 和 Runnable，本小节我们按照这个图把剩下的几个 API 也说完，然后把 API 之间的关系理清楚。
为了方便大家更好的理解，我们首先看一个 demo，这个场景说的是我们往线程池里面提交一个有返回值的线程，代码如下：
// 首先我们创建了一个线程池
ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 3, 0L, TimeUnit.MILL]]></description><category></category></item><item><title><![CDATA[kudu坑1]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/110131132</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/110131132</guid><author>zlfing</author><pubDate>Wed, 25 Nov 2020 15:05:36 +0800</pubDate><description><![CDATA[坑1: Caused by: org.apache.kudu.client.NoLeaderFoundException

Caused by: org.apache.kudu.client.NoLeaderFoundException: Master config (192.168.1.117:7051) has no leader.
Exceptions received: org.apache.kudu.client.RecoverableException:
[peer master-192.1..]]></description><category></category></item><item><title><![CDATA[TIME_WAIT、CLOSE_WAIT原因，危害，如何避免]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/110089193</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/110089193</guid><author>zlfing</author><pubDate>Tue, 24 Nov 2020 17:50:44 +0800</pubDate><description><![CDATA[前言

请说说你对TCP连接中time_wait状态的理解

解答：

先上TCP的状态变迁图



这幅图来自《TCP IP详解卷1：协议 原书第2版中文》13.5 TCP状态转换图



这幅图来自《UNIX网络编程，卷1：套接字联网API》2.6.4 TCP状态转换图

1. time_wait状态如何产生？
由上面的变迁图，首先调用close()发起主动关闭的一方，在发送最后一个ACK之后会进入time_wait的状态，也就说该发送方会保持2MSL时间之后才会回到初始状态。MSL值得是数据包在...]]></description><category></category></item><item><title><![CDATA[老猿说说-Thread]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/110041034</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/110041034</guid><author>zlfing</author><pubDate>Tue, 24 Nov 2020 10:12:11 +0800</pubDate><description><![CDATA[引导语
从本章开始我们开始学习线程的知识，线程是非常有趣的一个章节，大多数同学对于线程 API，属于不用就忘，到用时需要百度的情况，希望通过本小节的源码阅读，能够加深对线程的印象。
本小节主要三章，本章主要说线程的基本概念、使用姿势、Thread 和 Runnable 的源码；Future、ExecutorService 源码解析章节主要说异步线程执行；押宝线程源码面试题章节主要说说常遇到的源码面试题。
由于线程的概念很多，所以本章会先介绍很多线程的基本概念，说清楚后再解析源码，不然有些同学会看不懂，大家见]]></description><category></category></item><item><title><![CDATA[队列面试题]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/110039830</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/110039830</guid><author>zlfing</author><pubDate>Tue, 24 Nov 2020 10:03:49 +0800</pubDate><description><![CDATA[1  面试题
1.1 说说你对队列的理解，队列和集合的区别。
答：对队列的理解：
首先队列本身也是个容器，底层也会有不同的数据结构，比如 LinkedBlockingQueue 是底层是链表结构，所以可以维持先入先出的顺序，比如 DelayQueue 底层可以是队列或堆栈，所以可以保证先入先出，或者先入后出的顺序等等，底层的数据结构不同，也造成了操作实现不同；
部分队列（比如 LinkedBlockingQueue ）提供了暂时存储的功能，我们可以往队列里面放数据，同时也可以从队列里面拿数据，两者可以同时进]]></description><category></category></item><item><title><![CDATA[rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY]]></title><link>https://blog.youkuaiyun.com/zlfing/article/details/110004945</link><guid>https://blog.youkuaiyun.com/zlfing/article/details/110004945</guid><author>zlfing</author><pubDate>Mon, 23 Nov 2020 19:05:15 +0800</pubDate><description><![CDATA[解决办法：在rpm 语句后面加上 --force --nodeps就可以了。
例如
sudo rpm -ivh python3-libs-3.6.8-13.el7.x86_64.rpm --force --nodeps


]]></description><category></category></item></channel></rss>