一、写在前面
在UNIX系统中,系统负载是对当前CPU工作量的度量,被定义为特定时间间隔内运行队列中的平均线程数。load average 表示机器一段时间内的平均load。这个值越低越好。负载过高会导致机器无法处理其他请求及操作,甚至导致死机。
Linux的负载高,主要是由于CPU使用、内存使用、IO消耗三部分构成。任意一项使用过多,都将导致服务器负载的急剧攀升。
二、进程管理
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行 资源分配和调度的一个独立单位,是应用程序运行的载体
1.ps----用于报告当前系统的进程状态
如图所示:ps只显示隶属于自己的进程状态
如下二图所示:ps -aux 显示所有进程
- -a:显示所有用户的进程
- -u:显示用户名和启动时间
- -x:显示 没有控制终端的进程
- -e:显示所有进程,包括没有控制终端的进程
- -l:长格式显示
2. kill----终止一个进程
- Kill pid --杀死进程进程编号为pid的进程
- Kill -9 pid --强制杀死pid进程 (pid为进程编号)
3. top----进程状态显示和控制,每5s中自动刷新一次(动态显示)
使用top命令可以查看正在运行的系统中的动态实时视图信息,显示系统摘要信息, 以及Linux内核当前正在管理的任务列表。其支持静态输出,也支持交互式输出,还可以 在启动之前读取响应的配置文件来决定如何显示进程的状态信息。
** 注意:退出top按q**
三、系统负载
1.uptime----主要用于获取主机运行时间和查询linux系统负载等信息。
命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、 目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载
(和top命令第一行显示一样,top具体命令可参照上图)
uptime命令如图所示:
2.free----可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
- 应用程序可用内存l系统物理内存>70%内存充足
- 应用程序可用内存/系统物理内存<20%内存不足,需要增加内存
- 20%<应用程序可用内存/系统物理内存<70%内存基本够用
注意:空闲内存:available = free + buffer(缓冲) + cache(缓存)
3.w----查看系统负载
第一行从左面开始显示的信息依次为:时间,系统运行时间,登录用户数,平均负载。
第二行开始以及下面所有的行,告诉我们的信息是,当前登录的都有哪些用户,以及他们是从哪里登录的等等。
load average:后面的三个数值,第一个数值表示1分钟内系统的平均负载值;第二个数值表示5分钟内系统的平均负载值;第三个数值表示15分钟系统的平均负载值
4.vmstat----查看系统负载
vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),查看cpu负载,但是它可以报告关于进程、内存、I/O等系统整体运行状态。
- r 表示运行队列(就是说多少个进程真的分配到CPU)。
- b 表示阻塞的进程。
- swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
- free 空闲的物理内存的大小。
- buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存
- cache直接用来记忆我们打开的文件,给文件做缓冲。
- si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
- so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
- bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte。
- 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使用率。
- wt 等待IO CPU时间。
以上摘录自:linux查看系统性能负载常用命令_遇见的昨天的博客-CSDN博客_linux查看服务器负载命令
5.mpstat ----CPU核状态
6.ifstat ---- 网卡网络状态
7. df----查看硬盘使用情况
版权归原作者 星星慢 所有, 如有侵权,请联系我们删除。