Docker Machine

Posted by 夏泽民

安装时还是用的 boot2docker, 如今进化到了在 Mac OS X 下用 Docker Toolbox, 而且命令也由 boot2docker 换成了 docker-machine. 当然由于是非 Linux 系统, 所以 Mac OS X 仍然需要借助于 VirtualBox 中的 Linux 虚拟机作为桥梁, Docker Toolbox 创建的虚拟机名是 default (boot2docker 创建的虚拟机名是 boot2docker-vm) 就是这一桥梁, 我们称之为 DOCKER_HOST. 文中的 default 虚拟机指的就是这个 DOCKER_HOST.



Borg

Posted by 夏泽民

https://ying-zhang.github.io/yi/2017/x-eurosys15-borg-cn/ https://ying-zhang.github.io/doc/EuroSys15_Borg.pdf Large-scale cluster management at Google with Borg 摘要 谷歌的Borg系统群集管理器运行几十万个以上的jobs,来自几千个不同的应用,跨多个集群,每个集群有上万个机器。



validator

Posted by 夏泽民

https://github.com/go-validator/validator 这个包怎么用的 type NewUserRequest struct { Username string validate:"min=3,max=40,regexp=^[a-zA-Z]*$" Name string validate:"nonzero" Age int validate:"min=21" Password string validate:"min=8" }



Redis 源码阅读顺序

Posted by 夏泽民

第 1 步:阅读数据结构实现 刚开始阅读 Redis 源码的时候, 最好从数据结构的相关文件开始读起, 因为这些文件和 Redis 中的其他部分耦合最少, 并且这些文件所实现的数据结构在大部分算法书上都可以了解到, 所以从这些文件开始读是最轻松的、难度也是最低的。 下表列出了 Redis 源码中, 各个数据结构的实现文件:



ptmalloc、tcmalloc和jemalloc

Posted by 夏泽民

系统的物理内存是有限的,而对内存的需求是变化的, 程序的动态性越强,内存管理就越重要,选择合适的内存管理算法会带来明显的性能提升。 比如nginx, 它在每个连接accept后会malloc一块内存,作为整个连接生命周期内的内存池。 当HTTP请求到达的时候,又会malloc一块当前请求阶段的内存池, 因此对malloc的分配速度有一定的依赖关系。(而apache的内存池是有父子关系的,请求阶段的内存池会和连接阶段的使用相同的分配器,如果连接内存池释放则请求阶段的子内存池也会自动释放)。 内存管理可以分为三个层次,自底向上分别是:



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required