项目学习
Linux Go Docker Run GoByExample
Linux Go Docker Run GoByExample
Linux Go Docker Run GoByExample
系统调用sendfile Sendfile是Linux实现的系统调用,可以通过避免文件在内核态和用户态的拷贝来优化文件传输的效率。 其中大名鼎鼎的分布式消息队列服务Kafka就使用sendfile来优化效率,具体用法可参见其官方文档。 优化...
捕获SIGKILL SIGKILL是常见的Linux信号,我们使用kill命令杀掉进程也就是像进程发送SIGKILL信号。 和其他信号不同,SIGKILL和SIGSTOP是不可被Catch的,因此下面的代码是能编译通过但也是无效的,更多细节...
捕获SIGKILL SIGKILL是常见的Linux信号,我们使用kill命令杀掉进程也就是像进程发送SIGKILL信号。 和其他信号不同,SIGKILL和SIGSTOP是不可被Catch的,因此下面的代码是能编译通过但也是无效的,更多细节...
实现Run 实现Flock 前面提到进程的文件锁,实际上Run也用到了,可以试想下以下的场景。 用户A执行run pt-summary,由于本地已经缓存了所以会直接运行本地的脚本。同时用户B执行run -u pt-summary,加上-u或...
Run项目架构 Run是一个命令行工具,没有复杂的CS或BS架构,只是通过解析命令行或者配置文件来下载运行相应的脚本。 Flock Run使用了前面提到的进程文件锁,避免同时运行同一个脚本。同时运行同一个脚本会有什么问题呢?例如我们run ...
Namespaces简介 Linux Namespaces是资源隔离技术,在2.6.23合并到内核,而在3.12内核加入对用户空间的支持。 Namespaces是容器技术的基础,因为有了命名空间的隔离,才能限制容器之间的进程通信,像虚拟内存...
Cgroups Cgroups全称Control Groups,是Linux内核用于资源隔离的技术。目前Cgroups可以控制CPU、内存、磁盘访问。 使用 Cgroups是在Linux 2.6.24合并到内核的,不过项目在不断完善,3.8...
写时复制(Copy On Write) 一般我们运行程序都是Fork一个进程后马上执行Exec加载程序,而Fork的时候实际上用的是父进程的堆栈空间,Linux通过Copy On Write技术极大地减少了Fork的开销。 Copy On ...