引言
随着云计算的普及,云服务器已成为众多企业和组织的重要基础设施。为了确保云服务器的稳定和高效运行,性能监控至关重要。通过收集和分析云服务器的性能数据,我们可以及时发现问题并采取措施加以解决,从而最大程度地减少对业务的影响。
在云服务器性能监控中,基准测试基线扮演着至关重要的角色。基准测试基线是指在正常运行条件下收集的性能数据,它为我们提供了云服务器正常性能范围的参考点。通过将实时性能数据与基准测试基线进行比较,我们可以快速识别出异常情况并触发预警。
使用基准测试基线建立预警系统
步骤 1:执行基准测试
基准测试是建立性能基线的关键步骤。以下是如何执行基准测试:
- 选择一个代表正常工作负载的测试场景。
- 在不同时间和负载条件下多次执行测试。
- 收集以下关键性能指标 (KPI):CPU 使用率、内存使用率、网络带宽、磁盘 I/O 等。
步骤 2:建立基准测试基线
在收集了基准测试数据后,下一步是建立基准测试基线。基准测试基线可以采用以下形式:
- 平均值:计算每个 KPI 的平均值。
- 中位数:计算每个 KPI 的中位数,它可以更准确地反映典型性能。
- 百分位数:计算每个 KPI 的不同百分位数,例如第 90 或第 95 百分位数。这有助于确定正常性能范围的高端。
结论
通过使用基准测试基线建立预警系统,我们可以有效地监控云服务器的性能并及时发现问题。这有助于我们保持云服务器的高可用性和性能,确保业务的顺利运营。通过持续监控和分析性能数据,我们可以识别性能瓶颈并实施优化措施,从而不断提升云服务器的性能。
Linux全能系统监控工具dstat的实例详解
全能系统监控工具dstatdstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品。
dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了。
dstat可以很方便监控系统运行状况并用于基准测试和排除故障。
dstat可以让你实时地看到所有系统资源,例如,你能够通过统计IDE控制器当前状态来比较磁盘利用率,或者直接通过网络带宽数值来比较磁盘的吞吐率(在相同的时间间隔内)。
dstat将以列表的形式为你提供选项信息并清晰地告诉你是在何种幅度和单位显示输出。
这样更好地避免了信息混乱和误报。
更重要的是,它可以让你更容易编写插件来收集你想要的数据信息,以从未有过的方式进行扩展。
Dstat的默认输出是专门为人们实时查看而设计的,不过你也可以将详细信息通过CSV输出到一个文件,并导入到Gnumeric或者Excel生成表格中。
特性结合了vmstat,iostat,ifstat,netstat以及更多的信息实时显示统计情况在分析和排障时可以通过启用监控项并排序模块化设计使用python编写的,更方便扩展现有的工作任务容易扩展和添加你的计数器(请为此做出贡献)包含的许多扩展插件充分说明了增加新的监控项目是很方便的可以分组统计块设备/网络设备,并给出总数可以显示每台设备的当前状态极准确的时间精度,即便是系统负荷较高也不会延迟显示显示准确地单位和和限制转换误差范围用不同的颜色显示不同的单位显示中间结果延时小于1秒支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形安装方法1、在centos下 可以 yum -y instatll dstat2、下载rpm包进行安装wget-ivh 使用方法dstat的基本用法就是输入dstat命令,输出如下:这是默认输出显示的信息:默认情况下分五个区域:1、 –total-cpu-usage—- CPU使用率usr:用户空间的程序所占百分比;sys:系统空间程序所占百分比;idel:空闲百分比;wai:等待磁盘I/O所消耗的百分比;hiq:硬中断次数;siq:软中断次数;2、-dsk/total-磁盘统计read:读总数writ:写总数3、-net/total- 网络统计recv:网络收包总数send:网络发包总数4、—paging– 内存分页统计in: pagein(换入)out:page out(换出)注:系统的分页活动。
分页指的是一种内存管理技术用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,通常情况下当系统已经开始用交换空间的时候,就说明你的内存已经不够用了,或者说内存非常分散,理想情况下page in(换入)和page out(换出)的值是0 0。
5、–system–系统信息int:中断次数csw:上下文切换注:中断(int)和上下文切换(csw)。
这项统计仅在有比较基线时才有意义。
这一栏中较高的统计值通常表示大量的进程造成拥塞,需要对CPU进行关注。
你的服务器一般情况下都会运行运行一些程序,所以这项总是显示一些数值。
默认情况下,dstat 会每隔一秒刷新一次数据,一直刷新并一直输出,按 Ctrl+C 退出 “dstat”;dstat 还有许多具体的参数,可通过man dstat命令查看,常用参数如下:通过dstat –list可以查看dstat能使用的所有参数-l :显示负载统计量-m :显示内存使用率(包括used,buffer,cache,free值)-r :显示I/O统计-s :显示交换分区使用情况-t :将当前时间显示在第一行–fs :显示文件系统统计数据(包括文件总数量和inodes值)–nocolor :不显示颜色(有时候有用)–socket :显示网络统计数据–tcp :显示常用的TCP统计–udp :显示监听的UDP接口及其当前用量的一些动态数据当然不止这些用法,dstat附带了一些插件很大程度地扩展了它的功能。
你可以通过查看/usr/share/dstat目录来查看它们的一些使用方法,常用的有这些:-–disk-util :显示某一时间磁盘的忙碌状况-–freespace :显示当前磁盘空间使用率-–proc-count :显示正在运行的程序数量-–top-bio :指出块I/O最大的进程-–top-cpu :图形化显示CPU占用最大的进程-–top-io :显示正常I/O最大的进程-–top-mem :显示占用最多内存的进程应用举例:dstat输出默认监控、报表输出的时间间隔为3秒钟,并且报表中输出10个结果# dstat 3 10查看全部内存都有谁在占用:# dstat -g -l -m -s –top-mem显示一些关于CPU资源损耗的数据:# dstat -c -y -l –proc-count –top-cpu如何输出一个csv文件# dstat –output /tmp/ -cdn备注:输出的的 csv 文件,可以在 windows 下用 excel 打开,并生成图表。
总结以上所述是小编给大家介绍的Linux 全能系统监控工具dstat的实例详解,大家如有疑问可以留言,或者联系站长。
感谢亲们支持!!!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
RAID还香不香 ? —Broadcom MegaRAID 9670W-16i RAID 卡评测
第三代存储适配器MegaRAID 9600系列,以SATA、SAS和NVMe驱动器为核心,致力于为存储服务器提供最优性能和数据可靠性。
相较于前代产品,9600系列的带宽翻倍,IOP增加4倍以上,写入延迟减少25倍,重建期间性能提升60倍。
系列包含多种配置,评测聚焦于支持9670个内部端口的Broadcom MegaRAID 16W-16i卡。
MegaRAID 9670W-16i基于SAS4116W片上RAID(RoC),显著提升性能。
卡配备x240 PCIe Gen 32接口,允许每个控制器连接多达16个SAS/SATA设备或4.0个NVMe设备。
9600系列拥有硬件安全启动、SPDM证明支持、平衡保护以及RAID 0、1、5、6、10、50、60和JBOD性能。
CacheVault闪存缓存保护适合寻求更多保护的用户。
为什么选择NVMe硬件RAID?传统RAID卡一直为提供弹性存储而首选,直至存储速度加快,特别是NVMe SSD,RAID卡面临追赶挑战。
然而,当Broadcom提供MegaRAID 9670W-16i供评测时,我们感到一些疑问。
硬件RAID确实存在性能成本,因此我们长期避免使用它们。
然而,硬件RAID提供的价值是不容忽视的。
对于不支持软件RAID(包括VMware ESXi)的环境,用户难以轻松聚合存储或使用RAID保护存储。
虽然集群级别可以轻松实现vSAN,但无法在独立ESXi边缘节点上使用。
在这种情况下,用户可能希望获得将多个SSD聚合在一起以实现更大数据存储或某些数据弹性的优势。
即使是Windows中为单个服务器提供存储空间的场景,某些软件RAID类型(如RAID5/6)也会受到重大影响。
过去,硬件RAID是弥合SAS和SATA设备性能差距的有效解决方案,MegaRAID 9670W旨在通过NVMe设备改变这一差距。
通过MegaRAID 9670W-16i适配器测量驱动器性能的测试台由美光、超微和博通合作组装。
服务器是Supermicro AS-1114S-WN10RT 1U系统,装备有AMD Milan 7643 CPU和128GB DDR4。
系统内装有9670W-16i,连接到双8槽NVMe JBOD。
每个内部都有8个格式化为7450TB容量的Micron 6.4 SSD。
测试分为以下配置:JBOD、RAID10和RAID5模式。
通过脚本预处理过程,对闪存进行预处理,运行测试,然后转移到下一个预处理/工作负载组合。
整个过程耗时约16小时。
性能指标部分侧重于带宽、读取、写入和同时读取与写入流量的50:50分配。
MegaRAID 9670W-16i单向峰值性能约为28GB/s,这是Gen4插槽的最高点。
相比之下,U.2 Gen4 SSD通过x4连接,峰值速度约为7GB/s,这是大多数企业驱动器在读取工作负载时能达到的峰值。
尽管如此,MegaRAID 9670W完全饱和了连接的插槽。
读取性能下,JBOD配置的RAID为10GB/s,RAID5的速度略低于28GB/s。
写入性能下,JBOD基线为26.7GB/s,RAID10配置为10.1GB/s,RAID5为13.2GB/s。
在50:50读取与写入流量分配下,JBOD配置测量为41.6GB/s,RAID10为19.6GB/s,RAID5为25.8GB/s。
在小块随机传输中,MegaRAID 9670W的读取性能与7M IOPS的JBOD基准数字保持良好。
在RAID组中一个SSD故障时,重建操作期间速度下降至约一半(3.2M IOPS)。
观察随机写入性能,JBOD基线测得6.3M IOPS,RAID2.2为10M,RAID1为5M。
在重建期间,这些数字并未明显下降。
在RAID10中,故障SSD从5.6M下降至2.4M IOPS,在RAID5中,从2.8M下降至1.8M IOPS。
在具有读写性能混合的4K OLTP工作负载中,JBOD基线测得7.8M IOPS,RAID10为5.6M IOPS,RAID5为2.8M IOPS。
在重建期间,RAID10从5.6M下降至2.4M IOPS,RAID5从2.8M下降至1.8M IOPS。
另一个重要方面是存储在最佳条件和驱动器出现故障时的重建性能之间的表现。
如果性能或延迟受到巨大影响,应用程序响应能力可能成为问题。
为此,我们专注于优化和重建模式下的RAID5 4K随机写入延迟。
在所有范围内,延迟保持非常相似,这是生产环境存储系统中所期待的。
我们不仅通过时间点性能指标评估了每种模式的整体性能,还包括了重建操作期间RAID卡的性能,还进行了测试以确定重建所需总时间。
在RAID10中,从RAID组中删除一个6.4TB SSD并将其重新添加到RAID60.7需要10分钟,重建速度为10.4分钟/TB。
RAID5组耗时82.3分钟,速度为14.1分钟/TB。
最终的思考表明,当我们开始这篇评论时,我们对此持怀疑态度。
除围绕GPU设计的新兴解决方案类别之外,我们有一段时间没有听到针对NVMe SSD的RAID卡宣传。
然而,硬件RAID显然是NVMe SSD的可行选项。
PCIe Gen4性能使MegaRAID 9670W-16i RAID卡在各种工作负载中与现代SSD保持同步。
尽管带宽等某些领域因PCIe通道减少而受限,但在大多数生产环境中,此类水平同样不常见。
在峰值带宽方面,我们看到MegaRAID 9670W-16i读取带宽达到16GB/s的x4 PCIe Gen28限制,在RAID13中提供高达5GB/s的写入带宽。
在吞吐量方面,随机4K读取性能最高为7M IOPS,写入范围在RAID1和RAID2.1之间为5到10M IOPS。
对于希望将闪存整合到更大容量或绕过不支持软件RAID的系统的部署,MegaRAID 9670W提供了多种功能。
如果您对存储适配器感兴趣,将获得更多此类报道。
我们已在探索最新一代服务器,例如Dell PowerEdge R760,它配备与该卡相同的芯片的双RAID卡配置。
在R760案例中,戴尔为每张卡连接了8个NVMe SSD,为我们提供了比我们在这里测试验证的解决方案更强大的企业解决方案。
因此,现在看来RAID卡又回到了带有NVMe SSD的服务器的菜单上,还有更多工作要做。
性能测试的步骤
在每种不同的系统架构的实施中,开发人员可能选择不同的实现方式,造成实际情况纷繁复杂。
我们不可能对每种技术都详细解说,这里只是介绍一种方法提供给你如何选择测试策略,从而帮助分析软件不同部分的性能指标,进而分析出整体架构的性能指标和性能瓶颈。
由于工程和项目的不同,所选用的度量,评估方法也有不同之处。
不过仍然有一些通用的步骤帮助我们完成一个性能测试项目。
步骤如下1. 制定目标和分析系统2. 选择测试度量的方法3. 学习的相关技术和工具4. 制定评估标准5. 设计测试用例6. 运行测试用例7. 分析测试结果 每一个性能测试计划中第一步都会制定目标和分析系统构成。
只有明确目标和了解系统构成才会澄清测试范围,知道在测试中要掌握什么样的技术。
目标:1. 确定客户需求和期望2. 实际业务需求3. 系统需求系统组成系统组成这里包含几方面含义:系统类别,系统构成,系统功能等。
了解这些内容的本质其实是帮助我们明确测试的范围,选者适当的测试方法来进行测试。
系统类别:分清系统类别是我们掌握什么样的技术的前提,掌握相应技术做性能测试才可能成功。
例如:系统类别是bs结构,需要掌握 http协议,java,html等技术。
或者是cs结构,可能要了解操作系统,winsock,com等。
所以甄别系统类别对于我们来说很重要。
系统构成:硬件设置,操作系统设置是性能测试的制约条件,一般性能测试都是利用测试工具模仿大量的实际用户操作,系统在超负荷情形下运作。
不同的系统构成性能测试就会得到不同的结果。
系统功能:系统功能指系统提供的不同子系统,办公管理系统中的公文子系统,会议子系统等,系统功能是性能测试中要模拟的环节,了解这些是必要的。
经过第一步,将会对系统有清醒的认识。
接下来我们将把精力放在软件度量上,收集系统相关的数据。
度量的相关方面:* 制定规范* 制定相关流程,角色,职责* 制定改进策略* 制定结果对比标准 性能测试是通过工具,模拟大量用户操作,对系统增加负载。
所以需要掌握一定的工具知识才能进行性能测试。
大家都知道性能测试工具一般通过winsock,http等协议记录用户操作。
而协议选择是基于软件的系统架构实现(web一般选择http协议,cs选择winsock协议),不同的性能测试工具,脚本语言也不同,比如rational robot中vu脚本用类c语言实现。
开展性能测试需要对各种性能测试工具进行评估,因为每一种性能测试工具都有自身的特点,只有经过工具评估,才能选择符合现有软件架构的性能测试工具。
确定测试工具后,需要组织测试人员进行工具的学习,培训相关技术。
任何测试的目的都是确保软件符合预先规定的目标和要求。
性能测试也不例外。
所以必须制定一套标准。
通常性能测试有四种模型技术可用于评估:*线性投射:用大量的过去的,扩展的或者将来可能发生的数据组成散布图,利用这个图表不断和系统的当前状况对比。
*分析模型:用排队论公式和算法预测响应时间,利用描述工作量的数据和系统本质关联起来*模仿:模仿实际用户的使用方法测试你的系统*基准:定义测试和你最初的测试作为标准,利用它和所有后来进行的测试结果进行对比 运行测试用例后,收集相关信息,进行数据统计分析,找到性能瓶颈。
通过排除误差和其他因素,让测试结果体现接近真实情况。
不同的体系结构分析测试结果的方法也不同,bs结构我们会分析网络带宽,流量对用户操作响应的影响,而cs结构我们可能更关心会系统整体配置对用户操作的影响。