Linux服务器资源占用率总结

  • 统计内存最高的进程: ps aux | grep -v PID | sort -rn -k 4 | head

  • linux下获取占用内存资源最多的10个进程,可以使用如下命令组合:ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

  • linux下获取占用CPU资源最多的10个进程,可以使用如下命令组合:ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

  • 统计CPU使用率最高的进程: ps aux | grep -v PID | sort -rn -k 3 | head

  • 僵尸进程: ps aux | grep defunct | grep -v grep

  • 查找进程启动的线程: ps -eLf PID

  • 可以使用一下命令查使用内存最多的10个进程

  • 查看占用cpu最高的进程

    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

    或者top (然后按下M,注意这里是大写)

  • 查看占用内存最高的进程

    ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

    或者top (然后按下P,注意这里是大写)

  • 该命令组合实际上是下面两句命令:

    ps aux|head -1
    ps aux|grep -v PID|sort -rn -k +3|head

    其中第一句主要是为了获取标题(USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND)。
    接下来的grep -v PID是将ps aux命令得到的标题去掉,即grep不包含PID这三个字母组合的行,再将其中结果使用sort排序。
    sort -rn -k +3该命令中的-rn的r表示是结果倒序排列,n为以数值大小排序,而-k +3则是针对第3列的内容进行排序,再使用head命令获取默认前10行数据。(其中的|表示管道操作)

补充:内容解释

PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

  • 可以使用以下命令查使用内存最多的K个进程

  • 方法1:
    ps -aux | sort -k4nr | head -K
    如果是10个进程,K=10,如果是最高的三个,K=3

    说明:ps -aux中(a指代all——所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分)

      ps -aux的输出格式如下:
    
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  19352  1308 ?        Ss   Jul29   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Jul29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Jul29   0:11 [migration/0]
     sort -k4nr中(k代表从第几个位置开始,后面的数字4即是其开始位置,结束位置如果没有,则默认到最后;n指代numberic sort,根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。)。本例中,可以看到%MEM在第4个位置,根据%MEM的数值进行由大到小的排序。

 head -K(K指代行数,即输出前几位的结果)

 |为管道符号,将查询出的结果导到下面的命令中进行下一步的操作。
  • 方法2:top (然后按下M,注意大写)

二、可以使用下面命令查使用CPU最多的K个进程

  • 方法1:

    ps -aux | sort -k3nr | head -K

  • 方法2:top (然后按下P,注意大写

  • 查看网络服务状态:

    • netstat -ntlp --显示正在listening的tcp的数字格式的连接
    • netstat -nulp --显示正在listening的udp的数字格式的连接
  • 硬件故障分析:
    1.检查磁盘使用量:服务器硬盘是否已满。
    2.是否开启了swap交换模式(si/so)。
    3.CPU使用情况:占用高CPU时间片的是系统进程还是用户进程。

  • 查看CPU和内存信息: free -m在这里插入图片描述
    Mem为物理内存的容量。
    Swap为虚拟内存的容量。
    total为总容量。
    used为已用容量。
    free为空闲容量。
    shared为共享容量。
    buff/cache为缓冲及缓存的容量。
    avaiable为真正可用容量。
    一般swap used的值最好不要超过20%。

  • top --CPU和内存使用实际统计在这里插入图片描述

  • mpstat 2 10 --查看每个CPU的使用统计。
    在这里插入图片描述

  • 总线设备信息统计:

  • lspci --显示系统中所有PCI总线设备或连接到该总线的所有设备
    在这里插入图片描述

  • 使用dmidcode命令查看bios、system、memory、processor等硬件设备的信息

例:dmidecode -t Memory | grep “Maximum Capacity”

  • 查看网卡信息:
    ethtool 网卡名
    在这里插入图片描述
    ethtool -i ens33
    在这里插入图片描述
    I/O性能统计
    iostat -kx 2
    在这里插入图片描述
    vmstat 2 10
    在这里插入图片描述
    swpd:切换到交换内存上的内存容量(默认以KB为单位),正常情况下swpd的值为0。如果swpd的值比较大,如果查过100M,但是si和so的值长期为0,则这种情况不会影响性能。
    free:空闲的物理内存容量。如果free的值很小,但是si和so的值也很小,则系统性能不会受到影响。
    buff:做为buffer cache(缓冲区缓存)的内存,对块设备的读写进行缓冲。
    cache:做为page cache(页面缓存)的内存,文件系统的缓存,如果缓存值大,则说明缓存的文件数多,如果频繁访问到的文件都能被缓存,name磁盘的读io bi(发送到块设备的块数)会非常小。
    si:交换内存使用,由磁盘调入内存。
    so:交换内存使用,有内存调入磁盘。
    提示:内存够用时,si和so的值都是0,;如果这两个值长期大于0,那么系统性能就会收到影响,磁盘、I/O和CPU资源都会被消耗完。
    bi:从块设备读入的数据量(读磁盘),单位为KB/s。
    bo:写入到块设备的数据总量(写磁盘),单位为KB/s。
    提示:随机磁盘读写的时候,这2个值越大(如超出1M),能看到CPU在I/O等待的值也会越大。
    in:每秒产生的终端次数。
    cs:每秒产生的上下文切换次数。
    提示:in和cs的值越大,有内核消耗的CPU时间会越多。
    us:用户进程消耗的CPU时间百分比。如果us的值比较高,则说明用户进程消耗的CPU时间多。但是如果长期超过50%,那么就考虑优化程序算法或者进行加速。
    sy:内核进程所消耗的CPU时间百分比。如果sy的值比较高,说明系统内核消耗的CPU资源多,这并不是良性的表现,应该检查原因。
    id:CPU处于空闲状态时间的百分比。
    wa:I/O等待消耗的CPU时间百分比。如果wa的值比较高,则说明I/O等待比较严重,这可能是磁盘大量做随机访问造成的,也有可能是磁盘的带宽出现瓶颈,如快操作等。

  • 查看当前占用I/O资源最高的进程信息,如下图所示:
    dstat --top-bio --top-io在这里插入图片描述
    磁盘使用率统计:
    df -h --查看磁盘容量使用情况(检查删除文件后磁盘空间有未释放)
    fdisk -l --查看磁盘分区信息 在这里插入图片描述

  • 磁盘I/O相关参考:https://www.cnblogs.com/hanson1/p/7102206.html

  • lsof命令可以列出当前系统打开的文件及目录,其中提供了大量关于这个应用程序本身和操作系统交互的信息。+D参数可以列出对应目录下的所有子目录和文件。在这里插入图片描述

  • 操作系统日志:
    查看整体系统日志:/var/log/messages
    查看授权和认证信息:/var/log/secure

  • 以上两个日志中需关注:
    1)错误和告警信息,是否因为连接数过多所导致的;
    2)是否有硬件错误或文件系统错误。

  • 中断异常信息:
    /proc/interrupts中中断请求是否均衡分配给了CPU处理,CPU是否会由于大量网络中断请求或RAID请求而过载。

  • 内核信息查询:
    dmesg | more

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值