管理员必知:服务器基准测试方法与误区
http://www.itwaka.com/
在上一篇文章《管理员必知:服务器基准测试六大步骤》中,我们介绍了服务器性能衡量的标准以及进行服务器性能测试所必须的六大步骤。所有的准备工作都做好之后,我们接下来就开始进行服务器的基准测试吧!
基准测试的概念很容易理解,但是用基准测试获得的数据来提高系统的性能则完全是另外一回事。诸如微软Performance Monitor (PerfMon)之类的基准测试工具使用相当的灵活,但其工具集成的各种功能和繁琐的设置可能会让测试复杂化,并且很难看懂结果。在本文中,我们将介绍 在PerfMon中最常见的一些功能,并演示其将如何影响基准测试结果。
内存的分配与设置
给某个应用程序分配太多的内存实际上会影响服务器正在运行的进程的性能。事实上,错误的内存利用率可能会导致系统性能的下降。
在使用PerfMon进行服务器基准测试之前,我们将介绍几个技巧来检测服务器的内存使用情况,以确保内存分配不会影响服务器性能。
Memory:Available Bytes-这个功能检测操作系统(OS)的物理内存总量,并计算服务器上运行所有必须进程和应用程序所需的内存。
Memory:Committed Bytes-追踪运行时的峰值并进行对比。使用这个功能可监测运行波峰和波谷的情况以了解服务器的性能。除了运行进程和程序所需的内存外,你至少得保证4MB或5%以上的可用内存。
Memory:Page Faults/sec--这个功能测量当应用程序试图从本地虚拟内存中读取时发生“不存在”的页面错误。在理论情况下,零是最优的测量数据。任何测量数据 都不可能达到零延迟响应时间。注意,Memory:Page Faults/sec这个功能不但记录硬页面错误,还会记录软页面错误。当文件从硬盘读取而非虚拟内存中读取时就会发生硬页面错误。另一方面,物理内存已 存在的页面错误终止了进程就会发生软页面错误,但其几乎不会对性能产生影响。
线程与进程监测
注意处理器数量,尤其是试图取得每个处理器的最大线程时。注意“环境切换”发生的次数。
当操作系统(OS)的内核或核心把处理程序从一个线程切换到另一个线程时,就会发生“环境切换”。环境切换应当及时避免,因为每次环境切换都是处理器L1和L2缓存被刷新并重新写入。缓存刷新和再次写入需要宝贵的时间,并降低系统的性能。
Process:Thread Count:Inetinfo--统计Inetinfo运行创建的线程数,并显示最新值。
Thread:% Processor Time:Inetinfo =>Thread #--测量Inetinfo进程中每个线程使用的处理器时间。
Thread:Context Switches:sec:Inetinfo =>Thread#--测量每个处理器或线程池的最大线程数。监测这个参数很重要,其可预防产生大量的环境切换。否则,环境切换会占用内存并失去多 线程的优势,而此时的性能将降低而非提高。
测量并分析
遗憾的是,关于服务器和处理器测量方面的内容实在太宽泛了,以致在本文中无法一一分析。但是,在大多数情况下,系统性能和指标测试可分为一下几个类型:
- 内存管理
- 网络能力
- 处理器能力
- 磁盘优化
通过以上的分类,测试工程师能够得到一些可靠的基准测试结果,并利用其以更好地提高整体服务器环境。
基准测试的误区
当服务器环境下的所有测试都执行完以后,用记录的数据进行基准和参数评估。
谨慎对待厂商提供的基准测试结果。供应商往往会为了突出自己的产品而调整行业标准的基准测试结果。这就意味着,其产品基准测试结 果可能不太适合您独特的环境。例如,假设IT经理要购买应用程序以处理存储在服务器上的用户数据库。该应用程序的测试数据显示其能在 Server 2008 box上运行良好,并有快速的响应时间。尽管这看起来不错,但其未必适合您的运行环境。举例来说,供应商的应用程序是在一个单一的、增强服务器上运行测试 的,而你的却是在一个共享资源的虚拟机上运行。
注意,供应商的目的是为了向你推销软件,因此其参数就会有一些水分。这样做的结果就是纸上的参数很高,但可能在真实环境下就会大打折扣。可能大 的硬件和软件厂商不会这样做,但较小的经销商普遍都会稍微更改相关的参数。例如,硬件设备在广域网上的×××链接能力可能有较好的交付时间,因为在基准测 试时优化了该硬件。但是,安装到现场之后显示,其速度大多会降低20%—30%。
因此,被推荐的设备或应用程序必须要进行严格的测试、评估。不要只看重一个基准。在进行服务器基准测试时,尽可能多地测试各个元件。不要只是看 重一个因素,如CPU速度等。观察服务器各个因素的运行情况以让工程师更加了解服务器在各种环境下的整体运行效果,这样有助于追踪并纠正将来业绩方面的问 题。
注意基准服务供应商。如果你计划将基准测试和指标测试进行外包的话,一定要实现进行调查、评估。很多时候,著名的咨询公司都不遵 守甚至无视最基本的科学方法。例如,小型服务器和应用程序取样规格、缺乏变量控制、有限的测试结果重复性、测试软件少以及硬件数值偏差等。当然远远还不止 这些。寻找数值极限,例如,SQL服务器上运行的方式应当优于其使用的硬件。
含混不清的硬件规格也是一个危险信号。如果供应商只是列出了硬件——如双核处理器、4 GB RAM、512 MB显卡等——但却没有提供关于硬件的详细介绍,那么你也应当注意。考虑计算出基准测试中每个变量的微小细节。在这种情况下,处理器的类型是什么?安装的 是什么类型的RAM以及显卡型号是什么?所有这些细节都会产生不同的结果。
需要注意的一点是,每一个环境都是独特的,并有其自己的特定需求。使用类似PerfMon工具进行基准测试是一个有无数变量的持续过程,而这些 变量毫无疑问都将影响到您的测试结果数据。通过规划测试并遵循可靠的科学方法,测试工程师可以更精确地评估硬件和软件的运行情况。如果测试得当,良好的基 准分析可以为提高服务器架构性能提供参考信息。
http://server.itwaka.com/Manage/74685.html
转载于:https://blog.51cto.com/itwaka/603102
管理员必知:服务器基准测试方法与误区相关推荐
- PCB设计之:必知的PCB设计八大误区
误区一:这PCB板的设计要求不高,就用细一点的线,自动布吧. 点评:自动布线必然要占用更大的PCB面积,同时产生比手动布线多好多倍的过孔,在批量很大的产品中,PCB厂家降价所考虑的因素除了商务因素外, ...
- 黑客是怎么攻击网站的,管理员必知
网站属于web应用,要攻击网站,可以先通过大量的信息收集工作来筛选出有用的信息,并在这些信息的基础上思考网站是否存在漏洞,利用这些漏洞来进行渗透工作.如盲注.SQL注入.LFI.RFI.XSS.CSR ...
- 幻想三国ol服务器没有响应,《幻想三国OL》新手攻略新手必知的三点建议
有了攻略你才能更简单的玩游戏,你才知道哪些做了有什么用,哪些做了对你有好处,有想玩<幻想三国>这款游戏的现在跟着小编一起来了解一下这个新手必知的三点小建议吧!! 一.属性点精彩内容,尽在百 ...
- 闲鱼服务器临时维护,做好闲鱼运营必知技巧,这就是你不会做的一些原因
闲鱼运营的办法其实不是很难,首先我们要掌握对一个平台的了解,以及闲鱼的动态还有规则.不要什么不知道就开始上去卖货然后过着时有时无的日子,这样是行不通的,闲鱼无需经过复杂的开店流程,即可达成包括一键转卖 ...
- 小米4c无信号恢复服务器,小米4C用户必知,这8个问题及解决方法一定要了解
原标题:小米4C用户必知,这8个问题及解决方法一定要了解 自小米9月23日发布小米4C以来,号称"安卓小王子"的它在关注度上可谓是持续攀升. 当然,很多米粉都在第一时间拿到了期待已 ...
- 《渗透测试实践指南 必知必会的工具与方法 (原书第2版)》读书摘录
----------------------------------------------------------------------------分割线--------------------- ...
- mysql中用完即删用什么_MySQL使用和操作总结(《MySQL必知必会》读书笔记)
简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机--服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...
- [转载]企业网站建设必知必会
原文地址:企业网站建设必知必会作者:刘红杰 慧桥研发中心的同事常跟我提及我们有不少客户对网站建设和网站推广的基本概念还不是很清楚.三言两语一时又无法给客户解释清楚,经常造成沟通障碍.于是萌生写一些企业 ...
- mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...
最新文章
- mysql font zhushi_关于在mysql front中使用注释符报错的问题
- 解决该死的双硬盘蓝屏(错误代码:0x00000007b)!
- Python中用OpenPyXL处理Excel表格
- Openstack-L 路由注入方式
- java 静态方法覆盖_Java中方法的覆盖和静态方法的隐藏
- php+mysql+html 之页面输入、输出
- WPF 实现验证码控件
- 《Python Cookbook 3rd》笔记(5.6):字符串的 I/O 操作
- kubeadm源码分析(kubernetes离线安装包,三步安装)
- 形象化理解 SpringBoot + SpringCloud
- 注意地方hadoop中的pi值计算
- 《算法导论》常见算法总结
- Tomcat 9安装配置教程
- 我是如何自学通过CISSP考试的
- 51单片机学习板,超声波模块学习
- [分享]我们团队管理的最佳实践——企业积分制度应该如何建立?
- MessageCenterUI.exe - 无法找到入口 无法定位程序输入点
- A Magic Lamp
- 人生苦短python作伴_人生苦短,我用python
- IP地址在计算机的存储
热门文章
- mysql association_mybatis association 一对一
- 应用退出前不让线程切换_用户级线程和内核级线程,你分清楚了吗?
- 替换证件照背景颜色仅需十行Python代码
- Ubuntu 20.04上安装Git方法
- 简单介绍C++中常量与指针
- 如何彻底解决pip install慢的问题
- 简单介绍六点nginx优化的方法
- HDU1531(差分约束+Bellman_ford)
- [A Dangerous Maze LightOJ - 1027 ][概率题]
- 10通信端口感叹号_BFC 系列 数字光纤放大器通信转换器代理报价