• TomyTang 在版块 Linux平台 中发起了话题 Linux查看内存使用常用命令 1年, 11个月前

    了解RSS、PSS、USS等相关概念:

    • VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
    • RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)。<span style=”font-family: -apple-system, BlinkMacSystemFont, ‘PingFang SC’, ‘Hiragino Sans GB’, ‘Microsoft YaHei’, 微软雅黑, ‘helvetica neue’, helvetica, ubuntu, roboto, noto, ‘segoe ui’, Arial, sans-serif;”>使用top命令可以查询到,是最常用的内存指标,表示进程占用的物理内存大小。但是,将各进程的RSS值相加,通常会超出整个系统的内存消耗,这是因为RSS中包含了各进程间共享的内存。</span>
    • PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)。<span style=”font-family: -apple-system, BlinkMacSystemFont, ‘PingFang SC’, ‘Hiragino Sans GB’, ‘Microsoft YaHei’, 微软雅黑, ‘helvetica neue’, helvetica, ubuntu, roboto, noto, ‘segoe ui’, Arial, sans-serif;”>所有使用某共享库的程序均分该共享库占用的内存时,每个进程占用的内存。显然所有进程的PSS之和就是系统的内存使用量。它会更准确一些,它将共享内存的大小进行平均后,再分摊到各进程上去。 </span>
    • USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)。<span style=”font-family: -apple-system, BlinkMacSystemFont, ‘PingFang SC’, ‘Hiragino Sans GB’, ‘Microsoft YaHei’, 微软雅黑, ‘helvetica neue’, helvetica, ubuntu, roboto, noto, ‘segoe ui’, Arial, sans-serif;”>它是PSS中自己的部分,它只计算了进程独自占用的内存大小,不包含任何共享的部分。</span>

     

    • %MEM 进程的内存占用率
    • MAJFL is the major page fault count
    • VSZ 进程所使用的虚存的大小
    • RSS 进程使用的驻留集大小或者是实际内存的大小(RSS is the “resident set size” meaning physical memory used)
    • TTY 与进程关联的终端(tty)

     

    1. ps命令

    查看占用最多的前10个进程
    ps auxw|head -1;ps auxw|sort -rn -k3|head -10
    内存消耗最多的前10个进程
    ps auxw|head -1;ps auxw|sort -rn -k4|head -10
     

    虚拟内存使用最多的前10个进程。
    ps auxw|head -1;ps auxw|sort -rn -k5|head -10
     

    2. top命令

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。 可以直接使用top命令后,查看%MEM的内容。可以选择按进程查看或者按用户查看,如想查看oracle用户的进程内存使用情况的话可以使用如下的命令:
    top -u mysql
     

    3.htop命令

    与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

    与top相比,htop有以下优点:

    • 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
    • 在启动上,比top 更快。
    • 杀进程时不需要输入进程号。
    • htop 支持鼠标操作。
    • 两者相比起来,top比较繁琐。

    top缺点:

    • 只支持键盘操作。
    • 显示也单调。

     

WirelessLink
Logo