1,lsof:由于linux下一切皆文件,该命令意思是列出打开的文件,因此该命令适用场景很广。
lsof--显示所有打开的文件
lsof -u--特定用户打开的文件
lsof -u^root--排除root用户后的文件列表
lsof -i --列出所有网络连接
lsof -i 4 -- lsof - i 6列出ipv4或6的文件
lsof -i TCP:80--正在监听特定端口的进程
lsof -i TCP:1-1024--列出正在1-1024端口运行的程序
lsof -i -u root--特定用户使用的文件和命令
lsof -p 1 --通过PID搜索
kill -9 'lsof -t -u ntp'--杀死ntp用户的所有进程
2,vmstat param1 param2--Every param1 seconds execute a statistics until param2 count.
[root@vm-10]# vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 77808 643596 275088 10217268 0 0 0 3 0 0 1 0 98 0 0
0 0 77808 644084 275088 10217288 0 0 0 15 1558 1012 3 0 97 0 0
0 0 77808 643984 275088 10217292 0 0 0 18 1395 671 3 0 97 0 0
0 0 77808 643984 275088 10217296 0 0 0 39 1596 883 4 0 96 0 0
0 0 77808 643876 275088 10217304 0 0 0 13 1521 959 3 0 97 0 0
各参数说明:
r :表示运行队列,如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高
b :表示阻塞的进程数
swpd :虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器
free :空闲的物理内存的大小
buff : 系统占用的缓存大小
cache :直接用来记忆我们打开的文件,给文件做缓冲
si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了
us :用户CPU时间
sy :系统CPU时间
so : 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
sy : 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id : 空闲CPU时间,一般来说,id + us + sy =100
wt : 等待IO CPU时间。
3,iotop--实时显示磁盘io和进程。
4,iostat--io统计。
5,top-- 执行top后按1,可以显示每个cpu的各个core的使用情况。
6,ps -o lstart--显示进程启动时间,可以用下面的命令将 cpu 占用率高的线程找出来:
ps H -eo user,pid,ppid,tid,time,%cpu,cmd --sort=%cpu
7,pstree -a--按照tree的格式输出进程
8,free -m -- 显示内存和交换区使用情况
[root@vm-10]# free -m
total used free shared buff/cache available
Mem: 15886 4566 4670 778 6648 10126
Swap: 6193 1 6192
9,uptime--显示系统持续运行的时间
10,dstat --top-io --top-bio--显示哪些进程在进行io操作
11,cat /proc/net/sockstat--查看系统ipv4 socket连接情况,cat /proc/net/sockstat6用于ipv6
sockets: used 137
TCP: inuse 49 orphan 0 tw 3272 alloc 52 mem 46
UDP: inuse 1 mem 0
RAW: inuse 0
FRAG: inuse 0 memory 0
说明:
sockets: used:已使用的所有协议套接字总量
TCP: inuse:正在使用(正在侦听)的TCP套接字数量。
TCP: orphan:无主(不属于任何进程)的TCP连接数(无用、待销毁的TCP socket数)
TCP: tw:等待关闭的TCP连接数。
TCP:alloc(allocated):已分配(已建立、已申请到sk_buff)的TCP套接字数量。其值等于netstat —ant | grep ^tcp | wc —l
TCP:mem:套接字缓冲区使用量(单位不详。用scp实测,速度在4803.9kB/s时:其值=11,netstat —ant 中相应的22端口的Recv-Q=0,Send-Q≈400)
UDP:inuse:正在使用的UDP套接字数量
RAW:
FRAG:使用的IP段数量
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'--显示不同状态的连接总数
网友评论