广告
返回顶部
首页 > 资讯 > 操作系统 >linux查看进程内存占用
  • 306
分享到

linux查看进程内存占用

进程内存linux 2023-01-31 08:01:12 306人浏览 泡泡鱼
摘要

需要知道一台机器上面跑的java程序,各占用了多少内存。 ps -aux | grep xxxUSER        PID %CPU %MEM&nb

需要知道一台机器上面跑的java程序,各占用了多少内存。

 

ps -aux | grep xxx

USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

可以看到RSS,也就是物理内存占用,单位是KB。RSS是常驻内存集(Resident Set Size),表示该进程分配的内存大小。RSS不包括进入交换分区的内存。RSS包括共享库占用的内存(只要共享库在内存中)RSS包括所有分配的栈内存和堆内存。

 

输出如下:

root    4544  7.9  8.6 3141048 705316 ?      Sl   14:49   2:37 java -Djava.rmi.server.hostname=192.168.31.150 -Dcom.sun.management.jmxremote.port=12002 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.userenticate=false -Xms512m -Xmx512m -XX:MetaspaceSize=50M -XX:MaxMetaspaceSize=256m -jar /data/Tomcat_test_service_user/service-user.jar
root      4870  0.0  0.0 103320   888 pts/0    S+   15:22   0:00 grep java
root    6072  0.1  8.5 3141104 697052 ?      Sl   Jul18 188:59 java -Djava.rmi.server.hostname=192.168.31.150 -Dcom.sun.management.jmxremote.port=12004 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.meetingenticate=false -Xms512m -Xmx512m -XX:MetaspaceSize=50M -XX:MaxMetaspaceSize=256m -jar /data/tomcat_test_service_meeting/service-meeting.jar
root     11257  0.0  6.5 3105424 537836 ?      Sl   Oct21  28:06 java -Djava.rmi.server.hostname=192.168.31.150 -Dcom.sun.management.jmxremote.port=12001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xms512m -Xmx512m -XX:MetaspaceSize=50M -XX:MaxMetaspaceSize=256m -jar /data/code/test-config-server_8762/config-server.jar
root   17346  0.0  6.0 3132864 499504 ?      Sl   Oct21  41:46 java -Djava.rmi.server.hostname=192.168.31.150 -Dcom.sun.management.jmxremote.port=12000 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xms512m -Xmx512m -XX:MetaspaceSize=50M -XX:MaxMetaspaceSize=256m -jar /data/tomcat_test_eureka_server/eureka-server.jar
root   18127  0.4  7.7 3153628 632068 ?      Sl   Oct21 209:39 java -Djava.rmi.server.hostname=192.168.31.150 -Dcom.sun.management.jmxremote.port=12005 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.gatewayenticate=false -Xms512m -Xmx512m -XX:MetaspaceSize=50M -XX:MaxMetaspaceSize=256m -jar /data/tomcat_test_gateway_server/gateway-server.jar
root   28033  0.2  7.2 3165680 591664 ?      Sl   Oct12 134:32 java -Djava.rmi.server.hostname=192.168.31.150 -Dcom.sun.management.jmxremote.port=12003 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Xms512m -Xmx512m -XX:MetaspaceSize=50M -XX:MaxMetaspaceSize=256m -jar /data/tomcat_test_auth_server/auth-server.jar

 

RSS单位是KB,要转换为具体的MB,怎么做呢?

 

先来看一个例子,假设有一个进程,RSS值为:103320

#!/usr/bin/env python3coding: utf-8

import math

def convertBytes(bytes, lst=None):
    if lst is None:
        lst=['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']
    i = int(math.floor( # 舍弃小数点,取小
             math.log(bytes, 1024) # 求对数(对数:若 a**b = N 则 b 叫做以 a 为底 N 的对数)
            ))

    if i >= len(lst):
        i = len(lst) - 1
    return ('%.2f' + " " + lst[i]) % (bytes/math.pow(1024, i))

if __name__ == '__main__':
    RSS = 103320
    print(convertBytes(int(RSS)*1024))

 执行输出:

100.90 MB

注意:因为它是KB,转换为bytes,需要*1024

 

将 ps -aux | grep java 命令的输出结果,写入到一个文件 pro.txt

 

新建一个 test.py文件,内容如下:

#!/usr/bin/env python3
# coding: utf-8

import math

def convertBytes(bytes, lst=None):
    if lst is None:
        lst=['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB']
    i = int(math.floor( # 舍弃小数点,取小
             math.log(bytes, 1024) # 求对数(对数:若 a**b = N 则 b 叫做以 a 为底 N 的对数)
            ))

    if i >= len(lst):
        i = len(lst) - 1
    return ('%.2f' + " " + lst[i]) % (bytes/math.pow(1024, i))

if __name__ == '__main__':
    with open('pro.txt',encoding='utf-8') as f:
        for i in f:
            i = i.strip()
            cut_row = i.split()
            # print(cut_row)
            USER = cut_row[0]
            PID = cut_row[1]
            CPU  = cut_row[2]
            MEM = cut_row[3]
            VSZ = cut_row[4]
            RSS = cut_row[5]
            TTY = cut_row[6]
            STAT = cut_row[7]
            START = cut_row[8]
            TIME = cut_row[9]
            COMMAND = cut_row[10]
            JAR_NAME = cut_row[-1]
            if JAR_NAME != 'java':
                # print(RSS)
                print(JAR_NAME,'    ',convertBytes(int(RSS)*1024))

 

执行输出:

/data/tomcat_test_service_user/service-user.jar      688.79 MB
/data/tomcat_test_service_meeting/service-meeting.jar      680.71 MB
/data/code/test-config-server_8762/config-server.jar      525.23 MB
/data/tomcat_test_eureka_server/eureka-server.jar      487.80 MB
/data/tomcat_test_gateway_server/gateway-server.jar      617.25 MB
/data/tomcat_test_auth_server/auth-server.jar      577.80 MB

 

 将结果,直接复制到excel文件中。

1.png

 

 如果需要统计,去掉MB单位后,就可以做一下SUM计算了。

 

本文参考链接:

https://www.cnblogs.com/linyx/p/9766193.html


--结束END--

本文标题: linux查看进程内存占用

本文链接: https://www.lsjlt.com/news/193608.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux查看进程内存占用
    需要知道一台机器上面跑的java程序,各占用了多少内存。 ps -aux | grep xxxUSER        PID %CPU %MEM&nb...
    99+
    2023-01-31
    进程 内存 linux
  • Linux中怎么查看进程所占内存
    这篇文章主要介绍“Linux中怎么查看进程所占内存”,在日常操作中,相信很多人在Linux中怎么查看进程所占内存问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中怎么查看进程所占内存”的疑惑有所帮助!...
    99+
    2023-06-28
  • linux怎么查看程序占用内存
    在Linux系统中,可以使用以下命令来查看程序占用的内存:1. top命令:在终端中输入top命令,然后按下Shift + M键,可...
    99+
    2023-09-07
    linux
  • linux怎么查看各个进程内存占用情况
    在Linux系统中,可以使用以下命令来查看各个进程的内存占用情况:1. top命令:在终端中输入top命令,然后按下shift+m键...
    99+
    2023-10-09
    linux
  • Linux 查看进程和线程CPU和内存占用情况
    文章目录 Linux 查看进程有哪些线程Linux 查看程序内存占用情况 top和free等命令Linux 查看进程、线程数量 Linux 查看进程有哪些线程 linux 下查看进程内的线...
    99+
    2023-09-03
    linux 服务器 运维
  • linux怎么查看java内存占用
    要查看Java进程的内存占用情况,可以使用以下命令:1. 使用top命令查看进程的内存占用情况:```top -p ```在top命...
    99+
    2023-09-09
    java linux
  • linux怎么查看各个进程的内存占用情况
    在Linux系统中,可以使用以下命令来查看各个进程的内存占用情况:1. `top`命令:在终端中输入`top`命令可以实时查看系统的...
    99+
    2023-09-13
    Linux
  • linux怎么查看内存占用情况
    在Linux上查看内存占用情况可以使用以下命令: free命令:用于查看系统内存的使用情况。 free -h 该命令将以可读的方...
    99+
    2023-10-24
    linux
  • linux如何查看内存被谁占用
    在Linux系统中,你可以使用以下命令来查看内存被谁占用:1. `top`命令:在终端输入`top`命令,可以实时查看系统中各个进程...
    99+
    2023-08-30
    linux
  • Linux 查看占用资源cpu、内存最大的进程命令
    第一种方法: 1、详细查询命令: 查看cpu最大进程,或者内存最大进程。 #CPUps aux|head -1;ps aux|grep -v PID|sort -rn -k 3|head#内存ps aux|head -1;ps aux...
    99+
    2023-10-12
    linux ubuntu 服务器 Powered by 金山文档
  • linux怎么查看redis占用内存大小
    要查看Redis占用的内存大小,可以使用以下方法:1. 登录到Redis服务器。2. 执行`redis-cli`命令,启动Redis...
    99+
    2023-09-01
    redis linux
  • MacOS怎么查看进程占用内存是多少
    一、背景 在Linux下可以使用 free 命令来方便的查看内存占用情况,如 free -g、free -m等,但MacOS下没有这个命令。 既然如此,那么MacOS里是否有类似的工具呢? 而我们又该如何查看整个PC的内存占用情况,及指定进...
    99+
    2023-08-20
    macos
  • 查看php-fpm内存占用
    php-fpm的启动数量必须,要调整好,否则会造成内存使用过高查看PHP-FPM在你的机器上的平均内存占用使用如下命令:ps --no-headers -o "rss,cmd" -C php-fpm | awk '...
    99+
    2023-01-30
    内存 php fpm
  • 查找linux占用内存的前3名进程
    来自老男孩教育每日一题:http://lidao.blog.51cto.com/3388056/1914585查找占用内存的前3名进程(命令大风暴,看谁的命令最精简)参考答案:方法一top,输入大写P,结果按CPU占用降序排序;输入大写M,...
    99+
    2023-01-31
    进程 内存 linux
  • Linux下如何查询进程占用的内存
    小编给大家分享一下Linux下如何查询进程占用的内存,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!linux下查询进程占用的内存方法总结,假设现在有一个「php-...
    99+
    2023-06-05
  • Linux/Centos查看进程占用内存大小的几种方法总结
    1.命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。2. ps -ef | grep "进程名"    ps -e -o 'pid,comm,args,pcpu,rsz,vsz,sti...
    99+
    2023-06-06
  • linux环境下查看因内存占用过大被杀掉的进程
    文章目录 前言查询方法通过系统日志查找通过dmesg命令查找 进程被杀的原因总结 前言 最近发生两次游戏服务器进程突然消失的事件,查询日志上下文没有找到有用的信息,日志显示运行到某处戛...
    99+
    2023-09-16
    linux 服务器 运维 OOM dmesg
  • Shell脚本查看进程内存真实占用情况
    #!/bin/bash #****************************************************************# # ScriptName: pm # A...
    99+
    2022-06-04
    脚本 进程 内存
  • Linux中怎么用smem查看内存占用情况
    小编给大家分享一下Linux中怎么用smem查看内存占用情况,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!无论是作为系统管理员,还是作为使用桌面版Linux的简单...
    99+
    2023-06-16
  • Linux下如何查看哪些进程占用的CPU内存资源最多
    转自:https://www.cnblogs.com/sparkbj/p/6148817.htmllinux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:ps aux|head -1;ps aux|grep -v PID|so...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作