【问题标题】:Check the paging space utilization of the server in unix?在 unix 中检查服务器的分页空间利用率?
【发布时间】:2017-05-18 19:29:40
【问题描述】:

我需要检查一个 java 进程是否在 linux 和 AIX 中消耗了更多的分页空间。

【问题讨论】:

  • 分页是计算机不使用的资源。这就像在寻找“网络空间”。你问的是内存利用率还是磁盘带宽利用率?/
  • 是的内存利用率或磁盘带宽利用率..
  • 这些是非常不同的东西。对于内存,您是否查看虚拟内存大小、常驻内存大小、交换到磁盘的大小、共享内存大小?
  • 虚拟内存大小
  • 你可以通过阅读/proc/{pid}/maps来详细分析Linux上进程的虚拟内存大小,从Java你可以阅读/proc/self/maps,这可能比你想知道的要多。注意:虚拟内存大小是 virtual,因此它可以是许多 TB,但消耗很少(与实际使用的常驻内存大小相反)

标签: java shell unix aix


【解决方案1】:

虚拟内存大小

要获得虚拟内存大小,您可以在 Linux 上读取/proc/self/maps,它已使用所有地址范围。采取不同的方式,您就会知道有多少虚拟内存被用于什么用途。

如果您想了解更多详细信息,例如居民大小,可以阅读/proc/self/smaps

这提供了每个映射的精细细节,包括私有、脏、交换的数量等。

00400000-004f4000 r-xp 00000000 08:01 12058626                           /bin/bash
Size:                976 kB
Rss:                 888 kB
Pss:                 177 kB
Shared_Clean:        888 kB
Shared_Dirty:          0 kB
Private_Clean:         0 kB
Private_Dirty:         0 kB
Referenced:          888 kB
Anonymous:             0 kB
AnonHugePages:         0 kB
Shared_Hugetlb:        0 kB
Private_Hugetlb:       0 kB
Swap:                  0 kB
SwapPss:               0 kB
KernelPageSize:        4 kB
MMUPageSize:           4 kB
Locked:                0 kB
VmFlags: rd ex mr mw me dw sd

【讨论】:

  • 当我执行这个命令 /proc/self/maps 我得到这个错误-bash: /proc/self/maps: Permission denied@Peter Lawrey
  • @SuganthanRaj 实际上,我不建议您尝试将其作为程序运行,因为它不是可执行文件。这是您阅读的文件
【解决方案2】:

列出每个进程正在使用多少交换 (linux )
对于 /proc/*/status 中的文件;执行 awk '/VmSwap|Name/{printf $2 " " $3}END{ print ""}' $file;完成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多