PTS性能测试-大并发下PHPSession性能问题
2015-07-08 09:56:46 点击:

有个PTS用户反映系统性能压不上去,CPU利用率只有压到12%,TPS运行一分钟后骤降,并且越来越慢,波动较大。 事务只包含一个PHP页面请求,
 有个PTS用户反映系统性能压不上去,CPU利用率只有压到12%,TPS运行一分钟后骤降,并且越来越慢,波动较大。
         
       事务只包含一个PHP页面请求,后台系统架构是apache2.2+PHP5.3+mysql+windows2003,压测请求无sql操作,排查mysql问题。
        
   查看操作系统CPU和MEM系统资源很空闲,CPU和内存应该不是瓶颈。

    检查apache配置也没发现问题 ,1200执行线程,有点大,但是远远满足并发要求,怀疑是PHP的问题导致性能不稳定,觉得压测一个静态资源请求,看TPS是否稳定
    
      测试静态资源文件TPS很稳定,说明问题可能在PHP这里, 检查PHP配置文件php.ini:

       session.auto_start = 1 #每次打开页面执行session_start(),初始化session
       session.save_path = "D:/tmp"  #session文件保存地址
       session.save_handler = files #session保存方式


       看到PHP session 设置策略初步怀疑是session设置导致的性能问题,因为在并发压测中,每次请求都会创建一个session,每个session在D:/tmp创建一个文件
执行一段时间后,统计目录下文件过多导致性能下降。

       和用户沟通,压测的请求并不需要session,于是更改session.auto_start = 0 后重新压测:
       
       改session设置后TPS终于稳定了,由于外网带宽限制,改成内网测试
       

      内网测试TPS增长到1530,CPU也充分利用起来,到达100%。
      说明PHP session  files方式保存对性能响应较大。



相关热词搜索:发下 性能 问题

上一篇:Nginx负载均衡和LVS负载均衡的比较分析
下一篇:网站服务器压力Web性能测试:Apache Bench,Webbench,http_load安装使用