您好,登录后才能下订单哦!
总结有关服务器的各项性能指标,以及如何判断服务器的性能状况出现问题,性能指标代表的含义。同时也总结Linux服务器上有关工具的各项参数含义,以及日常需要注意的参数信息。
首先需要分清楚CPU使用率和机器负载不是相同的概念,如果CPU使用率,但是不一定代表机器负载同样也高。所以关于CPU使用率和负载的区别:
- CPU使用率:显示的是程序在运行期间占用的CPU百分比;
- CPU负载:显示的是一段时间内正在使用和等待使用的CPU平均任务数;
对于查看负载可以使用uptime,w命令,同时top,vmstat工具也可以同时观察CPU使用率和负载情况。
查看CPU核数:
grep "model name" /proc/cpuinfo | wc -l
命令返回信息中的load average就是关于系统的平均负载,里面的三个数字分别代表着1分钟、5分钟、15分钟内的系统平均负载。
(如果是多核CPU,1查看各个CPU详细信息)
top工具的第一行后面的三个值,分别也是代表之前的1、5、15分钟内的平均负载;
第三行关于CPU使用率各项参数的含义:
- (us)user:CPU在低nice值(高优先级)用户态所占用的时间;(大部分CPU时间都在执行此类程序)
- (sy)sytem:CPU处于内核所占用的时间,操作系统通过系统调用从用户态陷入内核态,执行特定的服务;(通常该值会比较小,当服务器执行的IO比较密集的时候,会比较大)
- ni(nice):CPU在高nice值(低优先级)用户态以低优先级运行占用的时间(nice>0);
- si(softirq):系统处理软中断所消耗的时间
- st(steal):在虚拟机情况下,因为虚拟机下的CPU是共享物理CPU,表明这段时间虚拟机等待hypervisor调度CPU的时间。
首先对于CPU使用率,如果长时间处于60-80%的范围,就意味着可能服务器出现瓶颈。如果需要具体分析,还需要观察是user占用率过高,还是system占用率过高。具体:
- us:当user占用率过高,通常是某些个别的进程占用了大量的CPU;
- sy:当system占用率过高,说明系统管理花费了大量时间,比如一些IO操作,或者部分内核,驱动模块;
*(其次负载指标来说,一直存在许多争议,我综合了一些文章的观点,具体是CPU负载保持在(CPU核数0.7)范围内,这样的负载是安全的,如果超过一定的负载(=CPU核数)就可以算是意味着over load。)**
内存也叫内存存储器,作用是暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
- 物理内存:通过物理内存条获得的内存空间,即随机存储器(RAM),与CPU直接交换数据的内部存储器,也叫主存
- 虚拟内存:计算机的一种内存管理技术,使应用程序认为拥有可连续使用的内存(完整的地址空间),实际上,被分割为多个物理内存碎片,以及部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。
- Swap分区:在系统的物理内存不够用的时候,将物理内存中的一部分空间释放出来,供当前运行的程序使用,这些被释放的空间可能来自于很长时间没有操作的程序,释放的空间被临时保存到Swap空间中,等到那些程序需要运行的时候,在从Swap分区中恢复保存的数据到内存。
free命令可以显示Linux系统中的空闲,已用的物理内存,Swap分区:
- total:总的可用空间,used:已使用空间;free:空闲可用空间;shared:共享使用物理内存空间;available:可以被应用程序使用的物理内存空间。
- buffers就是即将要写入到磁盘中,cache使从磁盘中读取出来。buff/cache:被buff和cache使用的物理内存空间
- free是真正未被使用到的物理内存空间,avaiable是从应用程序角度看,如果应用程序需要使用到内存,可以从buff/cache中回收内存满足应用程序的请求。
(展示不同进程的内存占用情况)
对于磁盘I/O访问负载过高,通常会出现系统操作,应用服务无法响应等问题,通常可以通过top、iostat,iotop,ps,lsof工具定位问题。
(wa:表示IO等待所占用的CPU时间占比,高过30%时IO压力过高)
(当util接近100%时,说明产生的I/O请求太多,满负荷运行。)
测试有关网络性能,一般从可用性、响应时间、网络利用率、网络吞吐量,网络带宽容量这几个方面。而常用的工具则有(ping、netstat、sar、tcpdump、iptraf)
查看制定以太网卡的吞吐量情况:
iptraf-ng -d eth0
查看网卡性能:
sar -n DEV 1 100
参数含义:
- IFACELAN接口
- rxpck/s每秒钟接收的数据包
- txpck/s每秒钟发送的数据包
- rxbyt/s或者rxkB/s每秒钟接收的字节数(上传速度,网卡入流量)
- txbyt/s或者txkB/s每秒钟发送的字节数(下载速度,网卡出流量)
- rxcmp/s每秒钟接收的压缩数据包
- txcmp/s每秒钟发送的压缩数据包
- rxmcst/s每秒钟接收的多播数据包
Linux下的CPU使用率与服务器负载的关系与区别:
https://www.jianshu.com/p/e134b8498413
服务器性能指标(一)——负载(Load)分析及问题排查:
https://www.hollischuang.com/archives/2409
服务器性能指标(三)——内存使用分析及问题排查:
https://www.hollischuang.com/archives/2642
Linux服务器I/O过高原因及解决方法:
https://www.linuxidc.com/Linux/2016-09/134813.htm
查看linux服务器硬盘IO读写负载:
https://www.cnblogs.com/mfryf/archive/2012/03/12/2392012.html
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。