linux查看系统性能负载常用命令

linux查看系统性能负载常用命令

top 查看系统整体性能/使用情况

用法
top [-d number] | top [-bnp]

-d:number代表秒数,表示top命令显示的页面更新一次的间隔。默认是5秒。

-b:以批次的方式执行top。

-n:与-b配合使用,表示需要进行几次top命令的输出结果

-p:指定特定的pid进程号进行观察

top命令使用详解

linux查看系统性能负载常用命令_第1张图片

vmstat 查看系统cpu使用情况

用法

[root@VM-8-9-centos ~]# vmstat --help

Usage:
 vmstat [options] [delay [count]]

Options:
 -a, --active           active/inactive memory
 -f, --forks            number of forks since boot
 -m, --slabs            slabinfo
 -n, --one-header       do not redisplay header
 -s, --stats            event counter statistics
 -d, --disk             disk statistics
 -D, --disk-sum         summarize disk statistics
 -p, --partition <dev>  partition specific statistics
 -S, --unit <char>      define display unit
 -w, --wide             wide output
 -t, --timestamp        show timestamp

 -h, --help     display this help and exit
 -V, --version  output version information and exit


vmstat

vmstat -n 2 3
# vmstat -n 每隔多少秒进行采样 采样多少次 

linux查看系统性能负载常用命令_第2张图片

procs

  • r:运行和等待的CPU时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不超过总核数的2倍,否则代表系统压力过大,我们看蘑菇博客测试服务器,能发现都超过了2,说明现在压力过大

  • b:等待资源的进程数,比如正在等待磁盘I/O、网络I/O等

cpu

  • us:用户进程消耗CPU时间百分比,us值高,用户进程消耗CPU时间多,如果长期大于50%,优化程序

  • sy:内核进程消耗的CPU时间百分比

  • us + sy 参考值为80%,如果us + sy 大于80%,说明可能存在CPU不足,从上面的图片可以看出,us + sy还没有超过百分80,因此说明蘑菇博客的CPU消耗不是很高

  • id:处于空闲的CPU百分比

  • wa:系统等待IO的CPU时间百分比

  • st:来自于一个虚拟机偷取的CPU时间比

pidstat 查看系统cpu/process使用情况

用法

pidstat -u 5 -p pid
# pidstat -u 多少秒刷新一次 -p pid 

注意:默认是没有pidstat命令的,需要 安装一下

yum install pidstat

linux查看系统性能负载常用命令_第3张图片

free 查看系统内存使用情况

用法

free -m
# 单位是M

经验值

应用程序可用内存l系统物理内存>70%内存充足

应用程序可用内存/系统物理内存<20%内存不足,需要增加内存

20%<应用程序可用内存/系统物理内存<70%内存基本够用
在这里插入图片描述

df 查看硬盘使用情况

df -h
# h参数为 : 以人类能看懂的方式呈现

linux查看系统性能负载常用命令_第4张图片

iostat 查看网络io情况

iostat -xdk 2 3

linux查看系统性能负载常用命令_第5张图片
rkB/s每秒读取数据量kB;wkB/s每秒写入数据量kB;

svctm lO请求的平均服务时间,单位毫秒;

await l/O请求的平均等待时间,单位毫秒;值越小,性能越好;

util一秒中有百分几的时间用于I/O操作。接近100%时,表示磁盘带宽跑满,需要优化程序或者增加磁盘;

rkB/s、wkB/s根据系统应用不同会有不同的值,但有规律遵循:长期、超大数据读写,肯定不正常,需要优化程序读取。

svctm的值与await的值很接近,表示几乎没有IO等待,磁盘性能好。

如果await的值远高于svctm的值,则表示IO队列等待太长,需要优化程序或更换更快磁盘。

CPU占用过高的定位分析思路

1、先用top命令找出CPU占比最高的
linux查看系统性能负载常用命令_第6张图片

2、ps -ef或者jps -l 进一步定位,定位进程

ps -ef | grep 3928

3、定位到具体线程或者代码

ps -mp 进程 -o THREAD,tid,time

-m 显示所有的线程
-p pid进程使用cpu的时间
-o 该参数后是用户自定义格式 要显示的内容

ps -mp 3928 -o THREAD,tid,time

在这里插入图片描述

4、jstack 进程ID | grep tid -A60

查看对应进程中,对应线程的栈信息

你可能感兴趣的:(Java核心编程,Linux服务器,Java面试题,linux,java)