高负载PHP-FPM调优

来源:互联网 发布:淘宝手机号绑定怎么改 编辑:程序博客网 时间:2024/05/21 13:39

http://www.zrwm.com/?p=6923


高负载PHP调优

针对PHP的Linux调优

  • 调整文件描述符限制
    # ulimit -n 1000000# vi /etc/security/limits.conf
    # Setting Shell Limits for File Descriptors*  soft nofile 1000000*  hard nofile 1000000
  • 禁止PHP代码文件所在分区的文件系统访问时间更新
    # vi /etc/fstab

    比如PHP代码所在分区:

    /dev/sdb1   ext4    errors=remount-ro  0  1

    修改为:

    /dev/sdb1   ext4    noatime,nodiratime,errors=remount-ro  0  1
  • 将临时文件存储到tmpfs

    在需要处理大量的小图片(比如:用户头像)上传的时候,使用内存文件系统tmpfs来存储,可以减少一些I/O的开销.但是如果用户是上传非常大的文件(比如:视频)的话,就不适合使用tmpfs.

    # vi /etc/fstab
    tmpfs                   /tmp                    tmpfs   defaults,nosuid,noatime 0 0

PHP配置调优

  • php.ini配置调优
    # vi php-app.ini
    [PHP]engine = Onexpose_php = Offmax_execution_time = 5memory_limit = 256Merror_reporting = E_ALL & ~E_DEPRECATEDdisplay_errors = Offdisplay_startup_errors = Offhtml_errors = Offdefault_socket_timeout = 5file_uploads = Onupload_tmp_dir = /tmp/phpupload_max_filesize = 50Mpost_max_size = 50Mmax_file_uploads = 20date.timezone = 'Asia/Shanghai'

    注意这里设置max_execution_time只有5秒.对于一个快的web应用来说,我们真的不想要web应用里有任何长时间运行的web请求,一个web请求持续超过5秒通常意味着有些东西出了问题.我们的目标是页面响应在300-500ms(微秒)之内.

  • PHP-FPM配置调优
    # vi php-fpm.conf
    [my_app];FastCGI/PHP-FPM使用UNIX Socketslisten = /data/my_app/tmp/php.socklisten.backlog = 300user = wwwgroup = wwwpm = dynamic;估算pm.max_children = (MAX_MEMORY - 500MB) / 20MBpm.max_children = 100;推荐为最大的pm.max_children的%10pm.start_servers = 10pm.min_spare_servers = 5pm.max_spare_servers = 15pm.max_requests = 1000pm.status_path = /php_statusrequest_terminate_timeout = 0request_slowlog_timeout = 0slowlog = /data/my_app/logs/slow.log

0 0
原创粉丝点击