zoukankan      html  css  js  c++  java
  • PHP-FPM高负载的解决办法

    =================== 优化设置 =========================


    When you running a highload website with PHP-FPM via FastCGI, the following tips may be useful to you : )
    如果您高负载网站使用PHP-FPM管理FastCGI,这些技巧也许对您有用:)
    1. Compile PHP’s modules as less as possible, the simple the best (fast);

    1.尽量少安装PHP模块,最简单是最好(快)的
    2. Increas PHP FastCGI child number to 100 and even more. Sometime, 200 is OK! ( On 4GB memory server);
    2.把您的PHP FastCGI子进程数调到100或以上,在4G内存的服务器上200就可以

    注:我的1g测试机,开64个是最好的,建议使用压力测试获取最佳值
    3. Using SOCKET PHP FastCGI, and put into /dev/shm on Linux;

    3.使用socket连接FastCGI,linux操作系统可以放在 /dev/shm中

    注:在php-fpm.cnf里设置<value name=”listen_address”>/tmp/nginx.socket</value>就可以通过socket连接FastCGI了,/dev/shm是内存文件系统,放在内存中肯定会快了.记得这时也要在nginx里的配置里进行修改,保持一致.
    location ~ .*.(php|php5)?$
    {
    #将Nginx与FastCGI的通信方式由TCP改为Unix Socket。TCP在高并发访问下比Unix Socket稳定,但Unix Socket速度要比TCP快。
    fastcgi_pass unix:/tmp/php-cgi.sock;
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fcgi.conf;
    }
    4. Increase Linux “max open files”, using the following command (must be root):
    # echo ‘ulimit -HSn 65536′ >> /etc/profile
    # echo ‘ulimit -HSn 65536 >> /etc/rc.local
    # source /etc/profile

    4.调高linux内核打开文件数量,可以使用这些命令(必须是root帐号)

    echo ‘ulimit -HSn 65536′ >> /etc/profile
    echo ‘ulimit -HSn 65536′ >> /etc/rc.local
    source /etc/profile

    注:我是修改/etc/rc.local,加入ulimit -SHn 51200的
    5. Increase PHP-FPM open file description rlimit:

    # vi /path/to/php-fpm.conf
    Find “<value name=”rlimit_files”>1024</value>”
    Change 1024 to 4096 or higher number.
    Restart PHP-FPM.

    5. 增加 PHP-FPM 打开文件描述符的限制:

    # vi /path/to/php-fpm.conf
    找到“<value name=”rlimit_files”>1024</value>”
    把1024 更改为 4096 或者更高.
    重启 PHP-FPM.


    6. Using PHP code accelerator, e.g eAccelerator, XCache. And set “cache_dir” to /dev/shm on Linux.
    6.使用php代码加速器,例如 eAccelerator, XCache.在linux平台上可以把`cache_dir`指向 /dev/shm

  • 相关阅读:
    MySQL 5.6中如何定位DDL被阻塞的问题
    MySQL 5.7中如何定位DDL被阻塞的问题
    MySQL表结构变更,不可不知的Metadata Lock
    mysqlfrm
    升级MySQL5.7,开发不得不注意的坑
    MySQL root密码忘记,原来还有更优雅的解法!
    MySQL 8 新特性之自增主键的持久化
    ip route显示和设定路由
    RHEL7/CentOS7 ip 命令常用用法,代替 ifconfg/route/ifup/ifdown
    网络安全+运维进阶(79)-网络基础-网络基础
  • 原文地址:https://www.cnblogs.com/jking10/p/4693296.html
Copyright © 2011-2022 走看看