使用分段诊断服务器性能

发布者:上海IT外包来源:http://www.lanmon.net点击数:1594

在日常性能测试中,我们需要掌握一些常见策略以及了解和掌握命令的需求,以查看服务器性能以解决服务器性能问题。
今天,我将与您分享使用分段方法在压力测量过程中快速诊断服务器的性能。
根据CPU,内存,磁盘IO和网络的顺序排除Linux服务器分段方法。参考流程图如下:
分析步骤:
步骤1使用top查看系统的一般情况:
注意cpu(sys + us)的使用率。如果值继续大于80%,则可以观察过程视图。非核心应用程序进程是否会占用大量CPU资源。如果可以排除非核心应用程序进程的影响,则可以基本确定系统cpu。资源供不应求。此时,观察到proc列r值应该与vmstat监视组合更大。同样,当cpu利用率非常低,但运行进程队列(r值)很大时,表面cpu被阻塞。
注意%idle(cpu空闲时间的百分比)。如果值很高但系统响应很慢,则CPU可能正在等待内存分配。此时,您应该注意内存使用情况(参见步骤3);如果空闲时间%空闲持续时间为0且系统时间(cpu sy)是用户时间的两倍(cpu us),系统正面临CPU资源短缺。
注意%wait(cpu等待IO的时间百分比)。如果cpu资源没有耗尽,如果该值继续很高,则系统存储IO可能存在瓶颈。问题的原因可能是:(1)系统中存在应用程序问题。 (应用程序本身有很多IO请求); (2)物理记忆不足; (3)低效的I/O子系统配置;在这种情况下,首先检查是否是应用程序问题,然后检查系统内存使用情况,如果是交换分页,则确定磁盘IO问题是由物理内存不足引起的(参见步骤3);如果没有,则检查系统磁盘,结合iostat验证这种现象是否由应用程序IO过多引起(参见步骤4)。
Step2结合vmstat和sar来监控cpu:
主要关注报表中的4个cpu列和2个procs(内核线程)列
r:等待CPU资源的进程数。此数据更能反映CPU负载而不是平均负载,并且数据不包含等待IO的进程。如果此值大于系统中的逻辑CPU核心数,则表示系统现在运行较慢,并且大多数进程正在等待CPU,然后系统的CPU资源已饱和。us,sy,id,wa,st:这些代表CPU时间消耗,表示用户时间(用户),系统(内核)时间(sys),空闲时间(空闲),IO等待时间(等待)和时间被盗(被盗,一般由其他虚拟机消耗)。上述CPU时间允许我们快速了解CPU是否正忙。通常,如果用户时间和系统时间非常多,则CPU正忙于执行指令。如果IO等待时间很长,则系统瓶颈可能在磁盘IO上。
Sar -P ALL:分别查询cpu,计算每个cpu的使用情况,检查多个cpu的负载是否平衡。
通过前两个步骤,可以基本确定cpu是否存在瓶颈:
如果cpu资源不足,可以调整应用程序的CPU使用率,以便应用程序可以更有效地使用CPU,并考虑添加更多的CPU;
如果cpu不是瓶颈,请关注系统内存。
步骤3使用vmstat:查看内存使用情况
每一行都会输出一些系统核心指标,这将使我们更加详细地了解系统状态。参数1后跟每秒统计信息的输出,参数2,表示总共输出2个统计信息。标题提示每列的含义,它只介绍了一些与内存性能调优相关的列:
记忆区
Swpd:表示切换到内存交换区域的内存大小,即使用的虚拟内存大小(KB)。如果大于0,则表示您的计算机物理内存不足。如果它不是程序内存泄漏的原因,那么你应该升级内存。或者将内存密集型任务迁移到其他计算机。
空闲:表示当前的空闲物理内存(以千字节为单位)。如果剩余内存不足,则还会导致系统性能问题。
Buff:表示缓存的baffers的内存大小,即缓冲区的大小。通常,需要缓冲块设备的读取和写入。
缓存:表示缓存页面的内存大小,即缓存大小。通常,它被缓冲为文件系统。经常访问的文件将被缓存。如果缓存值非常大,则缓存文件相对较大。如果io中的bi很小,请说明文件系统更有效。
交换区域
Si:表示有一个磁盘加载到内存中,即进入内存交换区的内存的内存大小;通常,每秒从磁盘读取虚拟内存的大小。如果该值大于0,则物理内存不足或内存泄漏。找出要解决的内存过程。
So:表示从内存进入磁盘的内存量,即内存交换区域进入内存。注意:通常,si等的值都是0.如果si等的值长时间不为0,则系统内存不足,需要增加系统内存。
步骤4使用iostat查看磁盘IO
Tps:发布到设备的每秒传输次数。 “一次转移”意味着“一次I/O请求”。多个逻辑请求可以合并为“一个I/O请求”。 “一次转移”请求的大小未知。
kB_read/s:驱动器每秒读取的数据量;
kB_wrtn/s:写入驱动器的数据量,以每秒表示;
kB_read:读取的数据总量;
kB_wrtn:写入的数据总量;这些单位是千字节
关注%iowait,如果CPU和内存限制条件不存在,并且%iowait长时间大于25%,那么IO被认为有瓶颈。
收集磁盘IO数据吞吐量(iostat -d -k),粗略估计系统数据吞吐量是否与应用程序负载相匹配,并检查是否存在大量与服务无关的IO操作。
步骤5使用sar -d查看磁盘读写:
其中:
Tps:每秒物理磁盘I/O的数量。多个逻辑请求合并为一个I/O磁盘请求,一个传输的大小未定义。
Rd_sec/s:每秒读取的扇区数。
Wr_sec/s:每秒写入的扇区数。
Avgrq-sz:每个设备I/O操作的平均数据大小(扇区)。
Avgqu-sz:磁盘请求队列的平均长度。
等待:每个请求的平均经过时间,从请求磁盘操作到系统完成处理,包括请求队列等待时间,以毫秒为单位(1秒=1000毫秒)。
Svctm:系统处理每个请求的平均时间,不包括在请求队列中花费的时间。
%util:对CPU的I/O请求的百分比。比率越高,描述越饱和。
在正常情况下,avserv应低于avwait值。如果avserv的值接近avwait,则意味着几乎没有I/O等待,并且磁盘性能非常好。如果avwait的值远远高于avserv的值,则表示I/O队列。等待时间太长,系统上运行的应用程序将变慢,磁盘IO是系统瓶颈。
步骤6使用netstat查看网络:1.通过ping命令检测网络的连接。
2,通过netstat -nltp组合来检测网络接口的状态
-u(udp)仅显示与udp相关的选项
-l仅列出Listen中的服务状态
-n拒绝别名的显示,这些别名可以显示转换为数字的所有数字。
-t(tcp)仅显示与tcp相关的选项
-p显示创建相关链接的程序的名称。
3,通过netstat -r组合检测系统路由表信息
总结一下:
cpu瓶颈的常见症状:
响应时间非常慢
Cpu空闲时间为零
用户使用cpu时间过长
系统过多会占用CPU时间
长时间运行的长队列
Cpu调整方法:
平衡系统负载——在不同时段运行进程,以便每天24小时更有效地使用。
使用nice或renice来优化调度程序——,为运行的进程分配不同的优先级,以避免占用大量的cpu资源。
添加资源——添加更多cpu
内存瓶颈的常见症状:
页面更改率高
交换空间使用率高
该过程进入非活动状态;
交换区内所有磁盘的活动数量都很高;
全球系统CPU利用率高;
内存不足
内存调整方法:
确保正确分配交换空间(分配足够的交换空间,每个交换空间大小相同,每个交换空间分配在不同的硬盘上)
参数调整,调整内存参数阈值
增加内存资源
IO瓶颈的常见迹象:
磁盘利用率过高
磁盘等待队列太长
等待磁盘I/O的时间百分比过高
物理I/O速率太高
缓存命中率太低
运行进程队列太长,但CPU处于空闲状态
IO调整方法:
通常,高%iowait表示系统至少存在一个应用程序问题,缺少内存问题或I/O子系统配置效率低下;
您应该检查应用程序是否生成大量IO请求。
检查是否是内存交换空间频繁页面交换导致的IO问题;
检查磁盘配置是否合理。
对于磁盘IO本身的优化,尽管存在一些I/O优化参数的虚拟内存,但提高磁盘I/O性能的最佳方法是正确配置Linux系统,而不仅仅是优化。参数。
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部