linux 监控网络IO、磁盘、CPU、内存:
CPU:vmstat 、sar –u、top
磁盘IO:iostat –xd、sar –d、top
网络IO:iftop -n、ifstat、dstat –nt、sar -n DEV 2 3
磁盘容量:df –h
内存使用:free –m、top
(1)内存:条数、每条大小、内存是DDR4还是DDR3、内存频率是2666MT/S还是1600MT/s
条数: dmidecode|grep -A5 'Memory Device'|grep Size | grep -v Installed |wc -l
每条大小: dmidecode|grep -A5 'Memory Device'|grep Size | grep -v Installed |uniq
内存类型: dmidecode | grep -A16 "Memory Device" | grep 'Type:' |grep -v Unknown |uniq
内存频率: dmidecode | grep -A16 "Memory Device" | grep 'Speed' |grep -v Unknown |uniq
(2)硬盘:块数,大小
fdisk -l | grep "Disk /dev/sd"
(3)查看什么进程占用端口
netstat -antp | fgrep <port>
(4)查看进程资源
jps -l # 获取进程idjmap -heap 21046
(5)CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
(6)CPU核数
cat /proc/cpuinfo| grep "cpu cores"| uniq
(7)CPU主频
cat /proc/cpuinfo| grep "model name"| uniq
ps命令用于查看系统中的进程状态
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER,进程所有者的用户名。
PID,进程号,可以唯一标识该进程。
%CPU,进程自最近一次刷新以来所占用的CPU时间和总时间的百分比。
%MEM,进程使用内存的百分比。
VSZ,进程使用的虚拟内存大小,以K为单位。
RSS,进程占用的物理内存的总数量,以K为单位。
TTY,进程相关的终端名。
STAT,进程状态,用(R--运行或准备运行;S--睡眠状态;I--空闲;Z--冻结;D--不间断睡眠;W-进程没有驻留页;T停止或跟踪。)这些字母来表示。
START,进程开始运行时间。
TIME,进程使用的总CPU时间。
COMMAND,被执行的命令行。
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
PID: 进程pid
USER: 拉起进程的用户
PR: 该列值加100为进程优先级,若优先级小于100,则该进程为实时(real-time)进程,否则为普通(normal)进程,实时进程的优先级更高,更容易获得cpu调度,以上输出结果中,java进程优先级为120,是普通进程,had进程优先级为2,为实时进程,migration 进程的优先级RT对应于0,为最高优先级
NI: 进程的nice优先级值,该列中,实时进程的nice值为0,普通进程的nice值范围为-20~19
VIRT: 进程所占虚拟内存大小(默认单位kB)
RES: 进程所占物理内存大小(默认单位kB)
SHR: 进程所占共享内存大小(默认单位kB)
S: 进程的运行状态
%CPU: 采样周期内进程所占cpu百分比
%MEM: 采样周期内进程所占内存百分比
TIME+: 进程使用的cpu时间总计
COMMAND: 拉起进程的命令
根据以上命令,提前设置监控预警。监控预警能够让你及时发现系统的性能信息、比如磁盘快满了,内存超负荷了,我们可以提前作出调整。
最后,遇到问题不要慌。根据经验,再通过命令排查内存、磁盘、网络、cpu,问题无非就这几类,切不可着急忙慌乱改一通,让简单问题复杂化,希望大家以后多多支持脚本之家!
上一篇:linux对于UDP的学习