linux 查看 负载?linux查看安装的软件
大家好,今天来为大家分享linux 查看 负载的一些知识点,和linux查看安装的软件的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
通过Linux命令查看系统平均负载的方法
这篇文章主要介绍了通过Linux命令查看系统平均负载的方法,对于服务器管理员来说非常有用,需要的朋友可以参考下
1、Linux系统的平均负载的概念
有时候我们会觉得系统响应很慢,但是又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待。特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度,所以我们通常会在自己的网站或系统变慢时第一时间查系统的负载,即CPU的平均负载。
2、查看平均负载
究竟应该如何查看平均负载呢?最简单的命令是uptime,如下所示:
代码如下:
[root@localhost~]# uptime
11:31:11 up 11 days, 19:01,2 users,load average: 0.02, 0.01, 0.00
目前的主流服务器都是双四核,有相当强悍的CPU,做一般的应用服务的话,Linux系统的负载这块倒不用我们担心。
还可以用w命令来查看,顺便可以查看一下系统当前有哪些用户,他们占用了哪些终端,如下所示:
代码如下:
[root@localhost~]# w
11:33:00 up 11 days, 19:03,2 users,load average: 0.00, 0.00, 0.00
USER TTYFROMLOGIN@ IDLE JCPU PCPU WHAT
root pts/1113.57.224.309:032:11m0.04s0.04s-bash
root pts/2113.57.224.311:310.00s0.02s0.00s w
另外,还有动态命令top,这个命令也可以反映系统负载情况。在下面的命令提示中,我们只关心加粗字体部分。
代码如下:
[root@localhost~]# top
top- 11:37:47 up 11 days, 19:08,2 users,load average: 0.00, 0.00, 0.00
Tasks: 122 total, 1 running, 121 sleeping, 0 stopped, 0 zombie
Cpu(s):0.1%us,0.0%sy,0.0%ni, 99.9%id,0.0%wa,0.0%hi,0.0%si,0.0%st
Mem: 4044136k total,1435504k used,2608632k free, 274740k buffers
Swap:8193140k total,0k used,8193140k free, 941884k cached
上面加粗字体显示的内容是什么意思呢?再通过uptime查看一下。
代码如下:
[root@localhost~]# uptime
11:39:36 up 11 days, 19:16,1 user,load average: 0.09, 0.03, 0.01
原来它所表示的是过去的1分钟、5分钟和15分钟内进程队列中的平均进程数量。
那么,如何衡量当前系统是否负载过高呢?可以从以下几点来考虑。
如果每个CPU(可以按CPU核心的数量计算)当前的活动进程数不大于3,则系统性能良好。
如果每个CPU当前的活动进程数不大于4,表示可以接受。
如果每个CPU当前的活动进程数大于5,则系统性能问题严重。
还可以结合vmstat命令来判断我们的系统是否过于繁忙,如果确定很繁忙的话,就要考虑是否更换服务器或增加CPU的个数了。总结如下:
如果r经常大于3或4,且id经常少于50,则表示CPU的负荷很重。
在上面例子中,我的服务器是PowerEdge 2850,CPU是双核双线程的,则0.09/2=0.045(即负载值/真实CPU个数),此系统的CPU负载基本可以忽略了。事实上,现在主流服务器的CPU都很强悍,如果不是应用虚拟化等特殊场景,基本上负载都很校
按照前面的计算公式,我所配置Nagios报警的CPU负载阈值为CPU核心的数量(即CPU的物理个数×核数)。还是以我的服务器PowerEdge 2850为例,其CPU核心的数量为2×2=4,则设置报警值为4。这样设置是合理的,因为毕竟不是每个应用服务器的CPU都支持多核心,毕竟整个网站中还有些性能比较弱的服务器是用来做备份的。
linux 下查看网络负载命令
用 netstat查看 Linux网络状况。
netstat-n| awk'/^tcp/{++S[$NF]} END{for(a in S) print a, S[a]}'
前面的 netstat-n是netstat的命令,Windows和Linux都可以用,结果显示内容差不多
后面的 awk'/^tcp/{++S[$NF]} END{for(a in S) print a, S[a]}'是Linux下的命令,主要作用是对netstat输出的结果进行过滤和处理:
运行这一句之后,显示的结果类似如下:
TIME_WAIT 27
FIN_WAIT1 435
FIN_WAIT2 89
ESTABLISHED 82
SYN_RECV 64
CLOSING 4
LAST_ACK 90
内容解释如下:
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
ESTABLISHED:代表一个打开的连接
SYN-RECV:再收到和发送一个连接请求后等待对方对连接请求的确认
SYN-SENT:再发送连接请求后等待匹配的连接请求
CLOSING:等待远程TCP对连接中断的确认
CLOSED:没有任何连接状态
CLOSE-WAIT:等待从本地用户发来的连接中断请求
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认
LISTEN:侦听来自远方的TCP端口的连接请求
如何查看linux服务器硬盘IO读写负载
打开终端
用top命令查看。输入:
top#查看swap
iostat-x110#查看%util%idle
#如果iostat没有要yuminstallsysstat
#如果%util接近100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。idle小于70%IO压力就较大了,一般读取速度有较多的wait.
#如果你想对硬盘做一个IO负荷的压力测试可以用如下命令
timeddif=/dev/zerobs=1Mcount=2048of=direct_2G
#此命令为在当前目录下新建一个2G的文件
欢迎追问