博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Benchmark感受
阅读量:6002 次
发布时间:2019-06-20

本文共 2579 字,大约阅读时间需要 8 分钟。

 

最近项目产品开始考虑提供64位的版本,之前32位的LoadTest没有参与,文档也没有找到,只好重头开始,2周下来碰到不少问题。

这边主要谈下感受,这里主要是linux系统,web服务是apache(windows+iis的以后再讨论)

1. 硬件

主要就是机器,这次选取的机器都是一样配置的,DELL的T3400

2.ulimit

Linux系统下执行ulimit -a

core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 63369
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 2048
cpu time               (seconds, -t) unlimited
max user processes              (-u) 30000
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

我们可以看到这些信息,具体什么含义请google,将所有机器的设置都修改成一样的,具体配置还是根据你的产品。

sudo vi /etc/security/limits.conf

sudo vi /etc/security/limits.d/90-nproc.conf  (new for Fedora 13 and Redhat 6),如果发现ulimit -s老是不成功,看看有没有这个文件
sudo reboot

我个人修改了stack size,默认应该是10M的,我修改成2M;

另一个是max user processes,默认的太小是1024,需要加大,否则后面配置apache的mpm设置老是提示

[alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread

 

3. Apache

版本要一致,从官网下载编译安装,选择MPM Worker模式(apache2.0之后新特性,请自行Google) 

查看版本

./httpd -v
Server version: Apache/2.2.22 (Unix)
Server built:   Mar 27 2012 14:03:52

查看模式

./httpd -l
Compiled in modules:
 core.c
 mod_log_config.c
 mod_expires.c
 mod_headers.c
 worker.c
 http_core.c
 mod_rewrite.c
 mod_so.c

配置conf/extra/http-mpm.config

<IfModule mpm_worker_module>
    ServerLimit 4
    StartServers 4
    ThreadLimit 512
    ThreadsPerChild 512
    MaxClients 2048
    MinSpareThreads 2048
    MaxSpareThreads 0
    MaxRequestsPerChild 0

</IfModule> 

里面的值请根据机器配置调整,每个设置含义请自行Google

Apache启动后,先检查logs/error.log,看看里面有没有错误

比如[error] server is within MinSpareThreads of MaxClients, consider raising the MaxClients setting

 

4. 服务

尽量减少其他进程的干扰,除了系统进程,只启动产品所用到的服务。

5.产品架构

熟悉自己的产品,使用了哪些技术,有哪些优势哪些薄弱的地方,瓶颈可能在哪些地方,优先测试

 

6. 负载均衡

单台机器负载 峰值:平均

多台机器负载 冗余,最终上线部署

(题外话:以前有人询问性能问题,我的回答是能用硬件解决的先考虑增加硬件,之后再来软件优化。可能有些人没有理解,

展开说下,我相信某个项目或产品在项目初期肯定充分比较过选择什么技术使用哪种框架,如果没有我只能无语,那么出现性能问题就是用户数达到某个数量级,

远远超出当初的规划,这个时候最快的做法就是增加硬件解决当前问题,之后软件优化或重构;过去做的5年规划可能赶不上公司3年的发展,而软件的优化往往牵一发而动全身,

增加硬件做负载均衡却是成本最低的。有人可能会说硬件很贵的,可能你考虑的是买新机器,可以考虑买二手服务器么或是自己组装,newegg早期使用的就是二手服务器,

google曾经用卡车去买来了大量废弃的内存条,很多服务器也是自己组装的,) 

7. 性能测试工具

Windows下第一想到的是LoadRunner,Linux下免费的当然是Jmeter,熟悉工具也是必要的,

比如Jmeter的remote test,。

 

8. 尝试使用多线程,增加JVM

现在的服务器基本都是多核的,过去硬件性能可能会影响或限制线程数目,随着硬件性能增强,可以增大例如Jmeter/Apache的线程数量。

java jvm 参数 -Xms -Xmx -Xmn -Xss 调优总结(
)

9. 32位/64位

现在服务器系统基本都有64位的了,内存也是白菜价,个人电脑上个8G也很轻松,CPU也支持64位架构,项目采用64位会逐步普遍,但是千万不要认为64位的应用性能会更好,不一定的,

64位应用更占硬盘更吃内存,另外64位可能还会有兼容性的问题,不过64位应该是个趋势。

暂时想到的是这些。 

转载地址:http://lbdmx.baihongyu.com/

你可能感兴趣的文章
linux查杀病毒的几个思路
查看>>
宽带速度
查看>>
构建之法阅读笔记5
查看>>
Android判断网络连接状态
查看>>
leetcode_1033. Moving Stones Until Consecutive
查看>>
logback logback.xml常用配置详解(二)<appender>
查看>>
js常用的函数库
查看>>
Sqlserver 数据库安全
查看>>
netstat命令简单使用
查看>>
Python标示符命名规则
查看>>
SSL certificate problem unable to get local issuer certificate解决办法
查看>>
20145209 刘一阳 《网络对抗》实验四:恶意代码分析
查看>>
个人学期总结
查看>>
CodeForces 985E Pencils and Boxes
查看>>
为什么Elasticsearch查询变得这么慢了?
查看>>
node.js中使用http模块创建服务器和客户端
查看>>
Away3D基础教程(六):支持双面交互的PlaneGeometry
查看>>
(十五)Centos之安装jdk
查看>>
RISC-V: custom instruction and its simulation(转)
查看>>
HDU 5366 The mook jong
查看>>