大家好,如果您还对深入解析服务器性能指标:重磅解读 Load 分析与排障技巧不太了解,没有关系,今天就由本站为大家分享深入解析服务器性能指标:重磅解读 Load 分析与排障技巧的知识,包括的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
在日常工作中,衡量一台服务器的性能时,经常会涉及到几个指标,比如load、cpu、mem、qps、rt等,每个指标都有其独特的含义。很多时候线上出现问题的时候,往往会伴随着某些指标的异常。大多数情况下,在问题发生之前,一些指标就会提前显示异常。
[[284450]]
什么是负载随着互联网的快速发展和业务量的不断增加,基于网络的数据访问流量快速增长,尤其是数据中心、大型企业、门户网站的访问,访问流量甚至达到10Gb/s。等级;同时,服务器网站借助HTTP、FTP、SMTP等应用为访问者提供日益丰富的内容和信息,服务器逐渐被数据淹没;此外,大多数网站(尤其是电子商务等网站)都要求提供不间断的24小时服务,任何服务中断或通信中关键数据丢失都会造成直接的业务损失。这些都对应用服务提出了高性能、高可靠性的要求,而这些海量的访问数据就是负载。
查看机器负载在Linux机器上,有多个命令可以查看机器的负载信息。其中包括正常运行时间、top、w 等。
uptime命令命令可以打印系统已运行的总时间以及系统的平均负载。 uptime命令可以显示的信息有:当前时间、系统运行了多长时间、当前有多少登录用户、过去1分钟、5分钟、15分钟系统的平均负载分钟。
~uptime13:29up23:41,3users,loadaverages:1.741.871.97 这行信息的后半部分显示“loadaverage”,即“系统的平均负载”。里面有三个数字,我们可以通过这三个数字来判断系统负载是大还是小。
1.74 1.87 1.97 这三个数字分别表示系统在1分钟、5分钟、15分钟内的平均负载。我们一般表示为load1、load5、load15。
w命令w命令的主要作用其实就是显示当前登录系统的用户信息。但与who不同的是,w命令更强大。 w命令还可以显示:当前时间、系统启动以来的时间、登录用户数以及系统最近1分钟、5分钟、15分钟的平均负载。然后每个用户都有各种数据。按以下顺序显示项目:登录帐户、终端名称、远程主机名称、登录时间、空闲时间、JCPU、PCPU、当前运行进程的命令行。
~w14:08up23:41,3users,loadaverages:1.741.871.97USERTTYFROMLOGIN@IDLEWHAThollisconsole-six1423:40-holliss000-six1420:24-zshholliss001-six15-w 来自w 命令的结果上图我们可以看到当前系统时间为14:08,并且系统经历了23小时41分钟,共有3个用户登录。过去1分钟、5分钟、15分钟系统平均负载分别为1.74 1.87 1.97。这与正常运行时间的结果相同。下面还打印了一些登录用户的各种数据,就不详细介绍了。
顶部命令
top命令是Linux下常用的性能分析工具。它可以实时显示系统中各个进程的资源使用情况,类似于Windows任务管理器。
~topProcesses:244total,3running,9stuck,232sleeping,1484threads14:16:01LoadAvg:1.74,1.87,1.97CPUusage:8.0%user,6.79%sys,85.19%idleSharedLibs:116M 常驻,16M数据,14Mlinkedit.MemRegions:66523总计,2152Mresident,50Mprivate,930Mshared.PhysMem:7819Mused(1692Mwired),370Munused。 VM:682Gvsize,533Mframeworkvsize,6402060(0)swapins,7234356(0)swapouts.Networks:packets:383006/251Min,334448/60Mout.Disks:1057821/38Gread,350852/40Gwriting.PID命令%CPUTIME# TH#WQ#PORTMEMPURGCMPRSPGRPPIDSTATEBOOSTS%CPU_ME%CPU_OTHRSUIDFAULTSCOWMSGSENTMSGRECVSYSBSDSYSMACHCSW30845top3.000:00.491/10213632K0B0B308451394运行* 0 [1]0.000000.0000003283+112203556+101770+8212+119901+823+30842GoogleChrom0.000:47.39170155130M0B0B11461146睡眠*0[1]0.000000.000 00 501173746269711767837821364228444830310043 上述输出结果中,Load Avg: 1.74, 1.87, 1.97 显示负载信息。
机器正常负载范围机器Load多少才算正常的问题一直以来都是很有争议的,不同的人有不同的理解。对于单个CPU,有人认为如果Load超过0.7,就超出了正常范围。有人认为只要不超过1就可以了。也有人认为单CPU的负载在2以下是可以接受的。
为什么会有这么多不同的理解?这是因为不同的机器除了CPU之外还受到其他因素的影响。运行的程序、机器内存、甚至机房的温度都可能不同。
例如,某些机器用于定期执行大量批处理任务。在此期间,负载可能会飙升得较高。其他时候可能会更低。那么在这个物价飞涨的时期我们是否应该解决这个问题呢?
我的建议是,最好根据自己机器的实际情况建立一个指标基线(比如最近一个月的平均值)。只要日负荷在基线上下范围内不是太大,就可以接受。如果差异太大,可能就到了人工干预的时候了。
如何降低负载负载高的原因可能很复杂,可能是硬件问题,也可能是软件问题。
如果是硬件问题,说明机器性能确实不好,所以解决办法很简单,更换机器即可。
前面我们提到CPU使用率、内存使用率、IO消耗可能会导致高负载。如果是软件问题,可能是Java中某些线程长时间被占用、大量内存持续被占用等原因造成的,建议从以下几个方面排查代码问题:
1、是否存在内存泄漏导致频繁GC?
2. 是否存在僵局?
3、是否有大字段的读写?
4、是否有可能是数据库操作导致的?检查SQL语句问题。
这是另一个建议。如果发现线上机器负载这么高,可以考虑dump堆栈内存并重启暂时解决问题,然后再考虑回滚排除问题。
Java Web应用Load飙高排查思路1.使用uptime查看当前负载,发现负载这么高。
2、使用top命令查看占用CPU较高的进程ID。
3、使用top命令查看哪个线程占用率较高。
4、使用printf命令查看该线程的十六进制值。
5、还可以使用jstat()查看GC情况,看看是否有频繁的FGC,然后使用jmap来dump内存,看看是否存在内存泄漏。
关于深入解析服务器性能指标:重磅解读 Load 分析与排障技巧的内容到此结束,希望对大家有所帮助。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/6774.html
用户评论
想了解一下如何通过监控负载来判断服务器性能是不是出问题。
有5位网友表示赞同!
最近发现服务器运行越来越慢,不知道是负载太高造成的吗?
有7位网友表示赞同!
我一直在学习服务器管理,这篇博客正好可以帮我理解负载分析的重要!
有8位网友表示赞同!
希望能详细解释常见的服务器性能指标有哪些,除了负载外还有什么?
有8位网友表示赞同!
服务器负载分析这方面技术很实用了,以后我可以参考你的文章来提高工作效率。
有8位网友表示赞同!
学习一下如何通过排查问题来优化服务器性能提升工作效率啊!
有19位网友表示赞同!
经常会遇到服务器访问缓慢的情况,不知道是哪个指标出了问题。
有6位网友表示赞同!
分享这个文章正好符合我最近的需求,希望能详细说说负载分析的方法
有13位网友表示赞同!
对服务器性能指标不太了解,读完你的文章后估计就能明白很多东西了。
有13位网友表示赞同!
我想知道如何利用工具来监控服务器的 负载情况吗?
有12位网友表示赞同!
想学习一下如何通过实际数据来判断服务器是否 overloaded?
有20位网友表示赞同!
很期待你能分享一些实用的优化建议,解决服务器性能问题。
有17位网友表示赞同!
对排查服务器性能问题的步骤很有兴趣,希望文章能够详细讲解!
有18位网友表示赞同!
感觉理解负载分析很重要,以后可以在实际工作中更好应用!
有17位网友表示赞同!
学习一下如何利用仪表板来直观地展示服务器负载数据吧!
有14位网友表示赞同!
对服务器监控和分析一直感兴趣,这篇文章应该能够满足我的需求。
有20位网友表示赞同!
想了解一下不同的服务器平台在负载方面的性能表现。
有5位网友表示赞同!
学习一下如何提高服务器的处理能力,更好地应对高负载情况?
有9位网友表示赞同!
想知道哪些因素会导致服务器负载过高,方便提前做好预防措施?
有9位网友表示赞同!