性能测试之:操作系统性能指标观测及分析

简介:
1.       对于Linux系统来说,Free Mem很少并不一定代表内存不足,成为瓶颈。实际上这是由于LINUX的内存管理机制造成的,LINUX会把Free的内存(完全没使用过的内存)尽可能的利用起来,作为buffers/cached(当有进程申请内存时,如果没Free,会把buffers/cached分配给进程),以提高系统的性能,尤其是在有大量I/O的情况下,增大buffers/cached会很大地提高I/O,可以提高多达20%的I/O性能,因此实际是LINUX的这一特性造成Free Mem几乎没有。当服务器存在大量I/O时,比较容易出现Free Mem几乎没有这样的情况。used-buffers-cached得到的结果才是应用程序用掉的内存,如果这个数字已经接近或超过总的内存数,那么内存成为瓶颈。如下图示:

第二行(-/+ buffers/cache)的used是扣除了buffers/cache后的used内存,这才是真正的被应用程序使用掉的内存(包括内核级进程和用户级进程)。也可以通过swap来判断内存是否是瓶颈,如果swap大量used,并且频繁的发生swap in和swap out,那么内存一定是瓶颈;有时用free会看到少量的swap used,这并不影响性能,内存不是瓶颈。
PS:buffers和cached的区别。两者都是缓存,都是为了提高I/O的性能,不同的是buffers是块设备的缓存,而cached是字符设备的缓存,简单地说,buffers用来存储目录下面有什么内容、什么权限等等,cached则存储文件的内容,例如,ls一下,可以发现buffers有明显增长(buffers其实一直在缓慢增长),而打开一个文件后,可以发现cached明显增长。
2. 现象:还没有开始性能测试,服务器的Load达到1以上,CPU 使用 user接近0sys有些情况下也接近0,有些情况下会达到10%以上,用vmstat查看,r(运行队列中的等待进程数)=0,b(等待I/O的进程数)>0
原因:产生这种现象的原因很多,比如,操作系统中存在状态为D(Uninterruptible sleep)或状态为Z(Zombie)的进程,这两种进程会把系统Load弄高(因为这两种状态的进程会滞留在CPU 运行队列中);或者系统对同一个目录mount了多次,会导致load升高,sys CPU>10%;一般都是跟I/O相关。
判断及解决方法:top或者ps afux一下,看看进程的状态;df一下看看是否有重复的mount;vmstat查看一下;可以根据不同的情况采用不同的办法来解决,由于是测试环境,最简单有效的办法就是reboot。不过有时reboot前也要做一些工作,比如已经mount了NFS服务端上的一个目录,并写入了fstab中,而NFS服务端关闭了,那么需要把fstab中的相应内容删除后再reboot,否则reboot后仍然会自动mount。



本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/283246,如需转载请自行联系原作者
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3月前
|
人工智能 自然语言处理 安全
【AI 现况分析】AI 如何帮助开发者完成自动化测试
【1月更文挑战第27天】【AI 现况分析】AI 如何帮助开发者完成自动化测试
|
4月前
|
测试技术 API 容器
|
2月前
|
计算机视觉
Google Earth Engine(GEE)——使用MODIS数据单点测试SG滤波和harmonics method 滤波的差异分析
Google Earth Engine(GEE)——使用MODIS数据单点测试SG滤波和harmonics method 滤波的差异分析
46 0
|
3月前
|
监控 数据可视化 Java
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
jvm性能调优实战 - 31从测试到上线_如何分析JVM运行状况及合理优化
53 1
|
1月前
|
jenkins 测试技术 持续交付
提升软件测试效率与准确性的策略分析
【2月更文挑战第28天】 在快速迭代的软件发展周期中,高效的测试流程是确保产品质量和用户满意度的关键。本文旨在探讨提高软件测试效率和准确性的策略,包括自动化测试工具的选择、测试用例的优化设计以及持续集成的实践。通过分析当前软件测试领域面临的挑战,提出了相应的解决方案,并通过案例分析来展示这些策略的实际应用效果。文章的目的是为软件测试工程师提供实用的指导和参考,帮助他们在保证测试质量的同时,缩短测试周期,降低成本。
40 1
|
5天前
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程
24 0
|
11天前
|
Web App开发 前端开发 Java
框架分析(11)-测试框架
框架分析(11)-测试框架
|
22天前
|
机器学习/深度学习 人工智能 算法
提升软件测试效率与质量的策略分析
在快速发展的信息技术时代,软件产品已成为日常生活和工作的核心组成部分。随着软件系统的复杂度日益增加,确保其功能性、稳定性及安全性的软件测试工作变得尤为重要。本文针对如何提升软件测试的效率与质量进行了深入探讨,分析了当前软件测试面临的挑战,并提出了一系列创新策略。这些策略包括采用自动化测试工具、实施持续集成和持续部署(CI/CD)、利用人工智能进行测试用例生成以及强化测试团队的技能培训等。通过综合运用这些策略,可以显著提高软件测试的质量和效率,减少人工成本,同时加速产品的上市时间。
|
1月前
|
安全 搜索推荐 物联网
未来操作系统发展趋势分析与展望
随着科技的不断进步,操作系统作为计算机系统的核心组成部分也在不断演进。本文将从智能化、安全性、跨平台性等方面探讨未来操作系统的发展趋势,并展望其在技术领域的应用前景。
66 4
|
1月前
|
测试技术 持续交付 UED
提升软件测试效率与准确性的策略分析
【2月更文挑战第29天】 随着软件开发周期的缩短和市场对质量要求的提高,传统的软件测试方法面临诸多挑战。本文针对如何提升软件测试的效率与准确性进行深入探讨,分析了自动化测试、持续集成、测试驱动开发(TDD)等现代测试策略的优势与实施要点。通过案例分析和数据对比,论证了这些策略在确保软件产品质量和加快上市速度方面的积极作用。