SPECweb2009调优指南
创始人
2024-11-20 09:08:30
0
 【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力,聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域,包含了应用使能套件、软件仓库、软件支持、软件适配认证四大板块,旨在共享尖端技术,为开发者提供一个涵盖多领域的开发平台和工具套件。 点击这里开始你的技术升级之旅吧

image.png

本文分享至飞腾开发者平台《SPECweb2009调优指南》

1 介绍

  SPECweb2009 是衡量 Web 服务器性能和能效的标准化基准,可以对 Web 服务器的并发数进行性能测试,评测 Web 服务器能够支持的最大同时连接数的客户端/服务器(每秒能够响应的最大请求数)。为充分利用服务器性能,提升SPECweb2009测试结果,可通过增大系统进程数、优化服务器软件参数、绑核以及优化参数等。

2 环境要求

  测试时使用的全部具体环境要求如下表所示。

项目说明
机器类型被测端:飞腾腾云S2500服务器、测试端:X86服务器
被测端操作系统CentOS Linux release 7.9.2009 (AltArch)
被测端内核版本4.19.5l
测试端操作系统CentOS Linux release 7.6.1810 (Core)
测试端内核版本4.19.5
Apache2.4.51

3 测试拓扑图

  本次测试中,以飞腾腾云S2500服务器作为Web服务器端,Client端和Besim端均部署在X86服务器上,网卡均使用Mellonx 10G网卡。拓扑图如下图所示。本文调优基于Apache服务器软件,故Web服务器上使用的是Apache软件。

image.png

4 测试调优手段

4.1 参数调优

4.1.1 增大系统最大进程数

  原理:修改系统的最大进程数,可以提高测试的并发数;
  调优方式可以如下表所示:

参数修改方式
/etc/security/limits.conf在文件尾部添加如下内容:
* hard nproc 65536
* soft nproc 65536
* hard nfile 65536
* soft nfile 65536
* soft stack unlimited
* soft core unlimited
* hard core unlimited
* - nofile 65536
vm.max_map_count(client 节点)sysctl -w vm.max_map_count=131060
4.1.2 优化web服务器软件参数(依据所使用的web服务器软件而定)

  原理:优化web服务器软件参数,可以充分利用和整合该软件的资源,如线程、生存期处理请求数等,提升处理性能。
  调优方式:本次测试使用Apache的Worker多进程处理模式,在测试端和被测端均修改/usr/local/apache2/conf/extra/httpd-mpm.conf文件,修改参考如下
  找到,将其他模式全注释。将worker模式修改如下:

StartServers     6  //初始进程数 ServerLimit     60  //表示服务器允许开启的最大进程数 ThreadLimit     600 //每个子进程可配备的线程数上限 MaxClients     36000 //允许同时伺服的最大接入请求数量,数值等于ServerLimit* ThreadLimit MinSpareThreads     25 //空闲线程数,若总的空闲线程数太少,子进程将产生新的空闲线程 MaxSpareThreads     650 //最大空闲线程数,若空闲线程数太多,将杀死多余空闲线程 ThreadsPerChild     600 //每个子进程建立的常驻线程数 MaxRequestWorkers      20000 //代表最大请求数(因为在Worker MPM模块中,一个请求数对应一个线程,故也可以理解为最大线程数。理论上,最大线程数不能超过最大进程数与每个进程可创建的线程数的乘积) MaxRequestsPerChild     0 //设置每个子进程在其生存期内允许伺服的最大请求数量
4.1.3 优化测试参数

  增大java的初始堆和最大堆大小。修改参考如下表所示。

修改文件建议值
start_client.sh$JAVA -Xms16384m -Xmx16384m -classpath bin/specweb2009.jar:bin/check.jarspecwebclient
start_prime_client.sh$JAVA -Xms16384m -Xmx16384m –classpath bin/specweb2009.jar:bin/check.jar:lib/jcommon-1.0.15.jar:lib/jfreechart-1.0.12.jar specweb
4.1.4 绑核

  原理:将进程和中断进行绑核,可避免频繁地核间调度带来的性能损耗。
  调优方式参考如下:在绑核中进行三方面的绑核,首先进行httpd进程的绑核,在server端和Besim端分别对httpd进程进行绑核,本次调优的httpd进程绑定在0-63上,可根据具体情况调整。httpd进程绑核可查考如下脚本:

#!/bin/bash NUM=`ps aux | grep -i httpd | grep -v grep | wc -l` for i in $(seq 1 $NUM) do         PID=`ps aux | grep httpd | grep -v grep | awk '{print $2}' | sed -n "$i"p`         echo $PID         echo ""         taskset -pc $1 $PID done

  然后,进行中断绑核,本次调优将Mellonx网卡中断绑定在0-7上,可根据具体情况调整。
  最后在Client端进行对测试进程进行绑核,修改start_client.sh和start_prime_client.sh文件,修改如下:

#vim start_client.sh taskset -ac CPU java -Xms16384m -Xmx16384m -classpath bin/specweb2009.jar:bin/check.jar  specwebclient  #vim start_prime_client.sh taskset -ac CPU java -Xms16384m -Xmx16384m –classpath  bin/specweb2009.jar:bin/check.jar:lib/jcommon-1.0.15.jar:lib/jfreechart-1.0.12.jar specweb

5 问题分析

5.1 运行期间遇到SocketTimeoutException

5.1.1 问题描述和分析

  当遇到SocketTimeoutException问题时,可能是你的服务器的session已超载,或者你的httpd的配置出现问题。出错如图下图所示。

image.png

5.1.2 解决办法

  原先mpm_worker_module中的MaxRequestWorkers值只有400,导致测4000 session出错,增大/usr/local/apache2/conf/extra/httpd-mpm.conf 中的MaxRequestWorkers的值,然后重启httpd服务。

5.2 报错404

5.2.1 问题描述和分析

  当出现报错404时,表示访问的页面没找到,这可能是准备的资源数量少于访问的session数量。出错截图如下图所示。

image.png

5.2.2 解决办法

  增大web服务器端和Besim服务器端support_downloads_props.rc 和 support_image_props.rc文件中的SIMULTANEOUS_SESSIONS 值,重新执行如下命令:

#cd /web2009-1.20/Wafgen #./Wafgen.sh unix/support_downloads_props.rc #./Wafgen.sh unix/support_image_props.rc

6 调优结果

6.1 测试命令

  首先生成测试所需的资源,先修改Client端和web server端/web2009-1.20/Wafgen/unix/目录下的support_downloads_props.rc和support_image_props.rc中SIMULTANEOUS_SESSIONS值,参考值大小为18000,接着执行如下命令:

#cd /web2009-1.20/Wafgen #./Wafgen.sh unix/support_downloads_props.rc #./Wafgen.sh unix/support_image_props.rc 最后到Client端的/web2009-1.20/Client和/web2009-1.20/Prime_Client下分别执行以下命令: # ./start_client.sh    //先在Client目录下执行此命令 # ./start_prime_client.sh

6.2 结果比较

  开始时,未经过调优,当Test.config中的SIMULTANEOUS_SESSIONS值为300时,测试结果为48671 requests, 79.1% good;调优后 SIMULTANEOUS_SESSIONS的值可以增至9000,测试结果为1607377 requests, 99.78% good。调优后具体每个不同 SIMULTANEOUS_SESSIONS结果如表所示。测试结果部分截图如下图所示。

SIMULTANEOUS_SESSIONS总请求数请求Good比例
400071367199.96%
500089288699.94%
9000160737799.78%

  未调优SIMULTANEOUS_SESSIONS为300的结果

image.png

  调优后SIMULTANEOUS_SESSIONS为9000的结果

image.png

推荐阅读

  • 基于飞腾腾云S2500的SPECWeb2009部署指南
  • SPDK的本地环境搭建和本地测试方法

欢迎广大开发者来飞腾开发者平台获取更多前沿技术文档及资料

如开发者在使用飞腾产品有任何问题可通过在线工单联系我们


版权所有。飞腾信息技术有限公司 2023。保留所有权利。

未经本公司同意,任何单位、公司或个人不得擅自复制,翻译,摘抄本文档内容的部分或全部,不得以任何方式或途径进行传播和宣传。

商标声明

Phytium和其他飞腾商标均为飞腾信息技术有限公司的商标。

本文档提及的其他所有商标或注册商标,由各自的所有人拥有。

注意

本文档的内容视为飞腾的保密信息,您应当严格遵守保密任务;未经飞腾事先书面同意,您不得向任何第三方披露本文档内容或提供给任何第三方使用。

由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,飞腾在现有技术的基础上尽最大努力提供相应的介绍及操作指引,但飞腾在此明确声明对本文档内容的准确性、完整性、适用性、可靠性的等不作任何明示或暗示的保证。

本文档中所有内容,包括但不限于图片、架构设计、页面布局、文字描述,均由飞腾和/或其关联公司依法拥有其知识产权,包括但不限于商标权、专利权、著作权等。非经飞腾和/或其关联公司书面同意,任何人不得擅自使用、修改,复制上述内容。

相关内容

热门资讯

七分钟了解!(旺旺冲击麻将)有... 七分钟了解!(旺旺冲击麻将)有挂猫腻,盈佳棋牌2021已更新详细教程(有挂方法)-哔哩哔哩是一款可以...
一分钟快速了解!Wepoke技... 一分钟快速了解!Wepoke技术原来是真的有挂,pokerworld有挂,必赢教程(有挂套路)-哔哩...
今日百科!(WPKplus)g... 今日百科!(WPKplus)gg扑克发牌机制测试(软件透明挂)确实有挂原来是有挂(2025已更新)(...
六分钟脚本!wepoke小技巧... 六分钟脚本!wepoke小技巧,德扑ai助手软件,wpk必胜确实是有挂的(2022已更新)-哔哩哔哩...
两分钟了解!(越乡游斗牛)真的... 两分钟了解!(越乡游斗牛)真的是有挂吗,湖北休闲2020已更新详细教程(有挂辅助)-哔哩哔哩是一款可...
8分钟了解!(大众互娱)确实真... 8分钟了解!(大众互娱)确实真有挂辅助挂吗,内幕古麻将外挂透视辅助挂,详细教程(有挂工具)-哔哩哔哩...
八分钟了解!wPk软件透明挂,... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这款游戏中打牌都...
盘点一款!(微扑克脚本)wpk... 盘点一款!(微扑克脚本)wpk俱乐部有假(软件透明挂)真实有挂原来一直总是有挂(2024已更新)(哔...
八分钟安装!德州ai辅助工具购... 八分钟安装!德州ai辅助工具购买,菠萝德州偷偷看功能,Wepoke盈利原来真实是有挂辅助挂(2023...
玩家必备教程!wepoker原... 玩家必备教程!wepoker原来是有挂,约局互娱辅助,可靠教程(有挂普及)-哔哩哔哩是一款可以让一直...