ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux-系统状态命令

2021-04-06 17:51:34  阅读:82  来源: 互联网

标签:状态 显示 系统 命令 参数 内存 linux 进程 CPU


一、性能分析工具【sar】

语法:sar 【参数】【时间间隔 次数】
参数:
-u 【显示系统所有CPU在采样时间内的情况】
-A 【显示系统所有资源资源设备的运行情况】
-d 【显示系统所有硬盘设备在采样时间内的使用情况】
-r 【显示系统内存在此采样时间内的使用情况】
-v 【显示inode节点、文件和其他内盒标的统计信息】
-n 【显示网络运行情况】

二、实时显示系统状态的工具【top】

语法:top 参数
参数:
-d 【改变显示更新的速度,以秒为单位】
-n 【显示更新的次数,完成后将退出top】
-p 【显示指定的进程】

三、显示当前进程的状态(静态)【ps】

语法:ps 参数
参数:
-aux【显示包含用户下的所有的进程】
-ef 【显示所有进程的信息,包括命令行】
-Lf 【显示某个进程下的线程】
# ps aux | sort -nr -k 3 | head -10 #查看占用CPU资源最高的10个进程

四、free

语法:free 参数
参数:
-s 【设置间隔的秒数】
-h 【以友好的形式展示】
-m【以M为单位】
-g 【以G为单位】、
实际内存使用量=used-buffers-cached
实际内存剩余量=buffers+cached+free
buffer :作为buffer cache的内存,是块设备的读写缓冲区(可回收)
cache :作为page cache的内存,文件系统的cache(可回收)
清理内存之前使用sync命令,将内存的数据写入到硬盘中

五、输出磁盘IO和CPU的统计信息【iostat】

语法:iostat 【选项】【时间间隔】【次数】
参数:
-c【显示cpu使用情况】
-d【显示磁盘使用情况】
-n【显示NFS使用情况】
-p【显示磁盘和分区的情况】

%user:CPU处在用户模式下的时间百分比。
%nice:CPU处在带NICE值的用户模式下的时间百分比。
%system:CPU处在系统模式下的时间百分比。
%iowait:CPU等待输入输出完成时间的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU的无意识等待时间百分比。
%idle:CPU空闲时间百分比。

备注:如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。%idle值如果持续低于10,那么系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU。

六、列出系统上所有的网络连接情况【netstat】

语法:netstat 参数
参数:
-a【列出当前的所有连接】
-n【禁用域名解析功能,以数字的形式列出】
-p【查看进程和端口的信息】 #需要root权限
-e【-ep选项可以同时查看进程名和用户名;如果使用和-n一起使用,user列就会变成用户的id号,而不是用户名】
-t 【列出tcp协议的连接】
-u【列出udp协议的连接】
-c【持续输出信息】
-l 【列出正在监听的连接】
-r 【打印出来的信息和route命令输出的命令一样,可以加-n禁止域名解析】
-ie【输出信息与ifconfig命令一样】
netstat -anpt | grep tcp | grep ESTABLISHED | wc -l #当前主机的tcp连接数

七、查看系统资源使用情况命令【vmstat】

语法:vmstat 【刷新延时 刷新次数】
参数:

r 表示运行队列(就是说多少个进程真的分配到CPU)。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。
swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
free   空闲的物理内存的大小
buff   Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
cache 接用来记忆我们打开的文件,给文件做缓冲,(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)
si  每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
so  每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
bi  块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒
bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
in 每秒CPU的中断次数,包括时间中断
cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id  空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wa等待IO CPU时间。

八、查看系统运行时间【uptime】

语法:uptime
参数:
-v 【查看命令版本】
显示当前时间--系统已运行时间--当前在线用户数--平均负载(最近1分钟、5分钟、15分钟,数值越小越好)

七、查看进程打开的文件、端口和打开文件的进程【lsof】

语法:lsof 参数
参数:
-u【显示指定用户打开了什么 #在用户前面加上^代表除了这个用户以外的】
-p【查看指定进程一打开的内容】
-i 【获取网络信息】
#lsof -i :[port] 查看端口
#lsof -i@[1.1.1.1:port] 查看主机的连通性
#lsof命令需要访问核心内存和各种文件系统,需要root权限才可执行
lsof | grep deleted;cd /proc/进程/fd;echo '' > 1 #找到已删除但被进程占用的文件,并清空,释放空间

标签:状态,显示,系统,命令,参数,内存,linux,进程,CPU
来源: https://blog.51cto.com/13377829/2688139

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有