pidstat 内存相关选项
[root@VM-0-16-centos ~]# pidstat -r -t | head -n 10
Linux 5.14.0-202.el9.x86_64 (VM-0-16-centos) 12/02/2024 _x86_64_ (4 CPU)
11:24:18 AM UID TGID TID minflt/s majflt/s VSZ RSS %MEM Command
11:24:18 AM 0 1 - 2.74 0.00 169556 13612 0.18 systemd
11:24:18 AM 0 - 1 2.74 0.00 169556 13612 0.18 |__systemd
11:24:18 AM 0 527 - 0.00 1.77 418960 311196 4.09 systemd-journal
11:24:18 AM 0 - 527 0.00 1.77 418960 311196 4.09 |__systemd-journal
11:24:18 AM 0 540 - 0.00 0.00 31452 9184 0.12 systemd-udevd
11:24:18 AM 0 - 540 0.00 0.00 31452 9184 0.12 |__systemd-udevd
11:24:18 AM 32 745 - 0.00 0.00 13288 5448 0.07 rpcbind
输出字段说明
- UID :用户 ID,指示哪个用户拥有该线程。
- TGID :线程组 ID,即进程 ID(PID)。
- TID :线程 ID,如果为
-
表示这是一个进程,而非具体的线程。 - minflt/s :每秒钟的轻页错误数(页面未在内存中,需要从磁盘加载)。
- majflt/s :每秒钟的重页错误数(需要从磁盘读取页面,且对性能有较大影响)。
- VSZ :进程/线程使用的虚拟内存的总大小(KB)。
- RSS :进程/线程占用的实际物理内存大小(KB)。
- %MEM :线程或进程占用的物理内存百分比。
- Command :执行该进程或线程的命令。
minflt/s 和 majflt/s 的正确含义
- minflt/s(轻页错误,minor page faults):
- 这是 轻页错误 的数量,它表示进程请求的内存页面已经被缓存(即已经在内存中),但是没有找到在进程的本地虚拟内存空间中。因此,操作系统需要将页面从 页缓存(Page Cache) 或其他已经存在的内存区域中加载到进程的虚拟内存空间中。
- 换句话说, 轻页错误 通常不涉及磁盘 I/O,它只是内存中的重新定位或缓存命中。
- majflt/s(重页错误,major page faults):
- 这是 重页错误 的数量,它表示进程请求的内存页面不在内存中,也没有被缓存,操作系统需要从磁盘上的 交换空间(Swap) 或直接从磁盘读取文件数据(如果是文件映射到内存)来加载该页面。
- 重页错误 需要进行磁盘 I/O,因此比轻页错误更昂贵,因为涉及到从磁盘读取数据。
何时认为是有问题?
- 轻页错误 :
minflt/s
较大并不一定意味着有问题,除非其数值异常高(如上千次每秒)。如果应用程序对大量数据进行随机访问或加载数据,这类错误可能会增多,但通常不会对性能产生显著影响。 - 重页错误 :
majflt/s
的值如果超过 10-20 次每秒,并且持续发生,就需要引起注意。这可能表明:- 系统内存不足,导致频繁的交换操作;
- 需要优化程序的内存管理;
- 需要增加物理内存或配置更多的交换空间。
- 轻页错误(
minflt/s
) :较高的数字通常不会影响性能,除非数值非常大。 - 重页错误(
majflt/s
) :如果频繁发生(例如每秒 10 次以上),通常表示系统内存不足,可能影响性能,应考虑增加内存或优化内存使用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: oom 评分是如何算出来的
下一篇: slabtop 命令
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论