python apache benchmark_Benchmark感受

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

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

1. 硬件

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

2.ulimit

Linux系统下执行ulimit -acore 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

ServerLimit 4

StartServers 4

ThreadLimit 512

ThreadsPerChild 512

MaxClients 2048

MinSpareThreads 2048

MaxSpareThreads 0

MaxRequestsPerChild 0

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

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

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

4. 服务

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

5.产品架构

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

6. 负载均衡

单台机器负载 峰值:平均

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

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

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

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

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

7. 性能测试工具

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

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

现在的服务器基本都是多核的,过去硬件性能可能会影响或限制线程数目,随着硬件性能增强,可以增大例如Jmeter/Apache的线程数量。java jvm 参数 -Xms -Xmx -Xmn -Xss 调优总结(http://hi.baidu.com/sdausea/blog/item/c599ef13fcd3a7dbf6039e12.html)

9. 32位/64位

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

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

暂时想到的是这些。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值