linux MM performance test
之前学习内存管理的换页算法与 workload 类型之间关系,其中的性能测试使用了vm-scalability项目,项目的 maintainer 非常耐心解答我关于项目使用的问题。 看项目的名字非常容易理解这个项目是为了解决测试内存管理子系统的拓展性问题的,之前我只是关注了换页算法 LRU 实现: 1234567-rwxr-xr-x case-lru-file-mmap-read 366 l...
之前学习内存管理的换页算法与 workload 类型之间关系,其中的性能测试使用了vm-scalability项目,项目的 maintainer 非常耐心解答我关于项目使用的问题。 看项目的名字非常容易理解这个项目是为了解决测试内存管理子系统的拓展性问题的,之前我只是关注了换页算法 LRU 实现: 1234567-rwxr-xr-x case-lru-file-mmap-read 366 l...
slab 分配器是 kernel 主要用来解决内存内碎片问题,还有其它的优势比如加速分配和引入老化机制,最初的设计应该是借鉴了 Solaris 2.4。linux 内部的 slab 最初的实现非常精巧且非常非常久远。 用户态观察 (准确的讲这个文件输出的内容是在 sulb.c 里面实现的,不算是传统意义上的 slab) 123456789cat /proc/slabinfoslabinfo ...
之前读 ULKe3 并没有配合最近版本的源码一起食用,导致理解不够深刻。后来又读了一遍 Linux kernel development,感觉虽然成文内容有点老,但是结构非常清晰,但是细节少。于是凭借着对 Linux kernel development 的理解又拿去 ULK 和 kernel 3.10 读了一遍,整理如下。 kernel task_struct 中 struct mm_st...
梳理一下 Linux 物理内存的组织,有了这个铺垫可以快速什么页框回收,KSM(kernel samepage merging),cgroup mm 是在内存那个层面玩的,能玩出什么花样,还能玩出什么花样。 现代的 Linux 都是支持 NUMA,它和普通的 SMP 机器区别在于同一个 cpu 访问不同的地址的时间开销可能不一样,所以叫不一致。 12345678910111213141516...
0x00 workflowgit 的工作流程,已 k8s devel 的开发者文档里面图来说明: workflow 首先在 fork 代码,然后 clone 到本地,创建分支并修改代码,commit 发 PR 或者 rebase/fetch 别人的代码后修改发 PR. 0x01 tips Merge another branch of the same git-repo 1git...
0x00 background因新项目与 kubernetes 本身相关,而我对 kubernetes 的复杂一无所知,所以需要探索它。这个 post 主要记录学习 k8s 梳理出来的 XCx 基本概念以及如何参与开发,部分图片来源于 [^slideshare], 大量资料来自 [^officialdoc], 有点补充”官网的文档不如 repo 里面来的全面”! 0x01 what’s ku...
0x00 design在 kubernetes 项目中一般的提案会在 repo 的docs/proposals下面,这次我主要关注networkPolicy相关提案,关于 networkpolicy 早期的会议讨论可以见 [^meeting], 提供一个 case[^draft2] 可以看到典型的应用方式,社区讨论定稿为 [^manuscript], 第一次提交的代码在 patch #256...
0x00 starting公司准备开容器项目且我被分到了项目组,但对容器技术一无所知,所以这个 post 来记录目前工业界主流容器技术 –docker 的实践过程。 0x01 what’s docker? Docker is the world’s leading software containerization platform. 0x02 why docker? Docker’s c...
从北京到上海。北方热也与南方不一样,南方的热软绵绵的好像中了分筋错骨手一样有力使不出来,北方的热好像铁砂布打磨着你让你狂躁。 试炼の魔都六月上旬,寻思着京城好远而实习补贴很少,因未毕业导致往返学校的开销导致收不抵支,就准备华东找个新实习并提出了离职。然后在拉钩上面投了个简历,就收到了面试,和面试官 (现在的 leader) 聊聊一下 Linux, 然后就收到了 offer, 于是就来到现...