摘要:一次 KVM 虚拟机磁盘占满的排查过程 KVM 虚拟机系统为 CentOS,文件系统为 XFS。 现象如下: 使用 df -h 命令发现磁盘剩余空间为30k(总大小为30G),使用 df -i 发现 inode 可用数量为 800(总数为18w,正常状态为1000w+) 虚拟机为初始状态时,磁盘空间 阅读全文
永利百家乐安全上网导航登入 2020年11月3日
摘要:nginx 内存池 ngx_pool_t nginx 是自己实现了内存池的,所以在nginx ngx_pool_t 这个结构也随处可见,这里主要分析一下内存池的分配逻辑。 内存池实现了包括小块内存、大块内存和清理资源几种资源的处理,应该来说覆盖了绝大数的使用场景了。 相关结构定义 // 大块内存 t 阅读全文
摘要:ngx_align 值对齐宏 ngx_align 为nginx中的一个值对齐宏。主要在需要内存申请的地方使用,为了减少在不同的 cache line 中内存而生。 // d 为需要对齐的 // a 为对齐宽度,必须为 2 的幂 // 返回对齐值 #define ngx_align(d, a) ((( 阅读全文
摘要:SystemTap 从春哥(章亦春)那看到的关于SystemTap的介绍,让我对动态追踪这个功能颇为感兴趣,觉得这是一个非常有用的功能。 SystemTap对内核及用户态程序提供了动态追踪功能,用户可以自定探测事件来跟踪程序的运行情况,如函数的调用路径、CPU占用和磁盘IO等一系列可以探测的情况。有 阅读全文
摘要:一次内核 crash 的排查记录 使用的发行版本是 CentOS,内核版本是 ,在正常运行的情况下内核发生了崩溃,还好有 vmcore 生成。 准备排查环境 1. crash 2. 内核调试信息rpm,下载的两个 rpm 版本必须和内核版本一致 kernel debuginfo common x86 阅读全文
摘要:LLVM 编码规范 LLVM Coding Standards "官网" | 历史翻译版本 "Github" "导论" "语言、库和标准" "C++ 标准版本" "C++ 标准库" "Go 代码准则" "机械的代码问题" "代码格式化" "注释" "头文件" "类概述" "method inform 阅读全文
摘要:SFINAE 与 type_traits SFINAE 替换失败不是错误 (Substitution Failure Is Not An Error),此特性被用于模板元编程。 在函数模板的重载决议中应用此规则, 当将模板形参替换为显式指定的类型或推导的类型失败时,从重载集中丢弃这个特化,而非导致编 阅读全文
摘要:C++ 虚函数分析 虚函数调用属于运行时多态,在类的继承关系中,通过父类指针来调用不同子类对象的同名方法,而产生不同的效果。 C++ 中的多态是通过晚绑定(对象构造时)来实现的。 用法 在函数之前声明关键字 表示这是一个虚函数,在函数后增加一个 表示这是一个纯虚函数,纯虚函数的类不能创建具体实例。 阅读全文
摘要:lambda 表达式分析 构造闭包:能够捕获作用域中变量的匿名函数的对象,Lambda 表达式是纯右值表达式,其类型是独有的无名非联合非聚合类类型,被称为闭包类型(closure type),所以在声明的时候必须使用 来声明。 在其它语言如lua中,闭包的格式相对更为简单,可以使用 lambda 表 阅读全文