Linux 性能优化 - 内存篇

本文参考极客时间付费课程,将众多 内存 相关的知识柔和成一篇,细节部分没有连贯,仅作为学习记录笔记。

Read More

Linux 性能优化 - CPU 篇

本文参考极客时间付费课程,将众多 CPU 相关的知识柔和成一篇,细节部分没有连贯,仅作为学习记录笔记。

一些工具,比如 sysstat (pidstat、mpstat、vmstat、iostat、…),stress-ng,sysbench,自行参考 man 手册,不在解释说明。

Read More

Linux 内核技术 - Page Cache 观测

Page Cache 管理不当,不仅会增加系统 I/O 吞吐,还会引起业务性能抖动,我们在工作中遇到的一些场景比如:

  1. 机器 load 飚高
  2. 机器 I/O 吞吐飚高
  3. 业务响应时延出现较大的毛刺
  4. 业务平均响应时延明显增加

这都很可能与 Page Cache 相关。

Read More

计算机组成原理 - DMA

我们对于 I/O 设备的大量操作,多数类似文件复制,把硬盘数据拷贝到内存,再把内存数据传输到I/O设备。这种情况,如果所有数据都要经过 CPU,实在有点太浪费时间了,因为 CPU 速度很快,大部分都在傻等硬盘读写。

因此,计算机工程师们,发明了 DMA 技术,即直接内存访问(Direct Memory Access)技术,来减少 CPU 的等待。

Read More

计算机组成原理 - 理解 IO_WAIT

因为 CPU 的频率通常在 2GHz 以上,即每秒可执行 20 亿次操作,所以瓶颈通常在 I/O 上。那么具体如何定位呢?

Read More

计算机组成原理 - 理解内存

计算机最重要的是 CPU,除此之外,第二重要的就是内存,内存属于计算机五大组成部分中的存储器,我们的指令和数据,都要先加载到内存,才会被 CPU 拿去执行。

之前有篇提到过,程序并不能直接访问物理内存,而是通过虚拟内存地址转换到物理内存地址,从而加载数据,那么虚拟地址究竟如何转换成物理内存地址的呢?

Read More