zoukankan      html  css  js  c++  java
  • 军哥LNMP优化

    http://bbs.vpser.net/thread-8914-1-1.html

    http://www.zxsdw.com/index.php/archives/881/

    修改/usr/local/php/etc/php-fpm.conf php 5.2调整:max_children的值
    php 5.3以上版本调整:pm.min_spare_servers和pm.max_spare_servers的值适当增加
    最大值可以按内存xxMB/2/20 的整数来算,最小值可以按内存/2/40 的整数来算,可以少点或多大,可以自己调整运行看看。
    ************************************

    如果mysql安装时开启了innodb的话,内存在4G以上可以用/usr/local/mysql/share/mysql/ (mysql5.5在5.5在/usr/local/mysql/support-files/)下面的my-innodb-heavy-4G.cnf 替换/etc/my.cnf 
    1-2G的话,没开启innodb的话可以用my-huge.cnf,如开启了innodb需要修改配置文件启用。

    ***********************************
    nginx可以调整 /usr/local/nginx/conf/nginx.conf 的worker_processes
    Nginx作者说的:
    一般一个进程足够了,你可以把连接数设得很大。如果有SSL、gzip这些比较消耗CPU的工作,而且是多核CPU的话,可以设为和CPU的数量一样。或者要处理很多很多的小文件,而且文件总大小比内存大很多的时候,也可以把进程数增加,以充分利用IO带宽(主要似乎是IO操作有block)。

    现在大部分版本上也可以设置为:worker_processes auto; 自动调整

    *****************************************
    所有调整均需要重启对应的程序使其生效。
    建议改配置前备份一下配置文件,以便出错时恢复或查找错误。

    我的优化(仅供参考):  我的配置为:(E5-2670*2, 32G, 1T+240SSD,独享30M)

    php-fpm优化:   

    vim  /usr/local/php/etc/php-fpm.conf

    pm = dynamic        //这里我设为动态,如果并发量大的 可以设为静态 并把pm.max_children调大。
    pm.max_children = 100    //pm 为静态时(static)的进程数
    pm.start_servers = 100   // 动态模式:开始时的子进程数
    pm.min_spare_servers = 50  // 动态模式: 空闲时的子进程数
    pm.max_spare_servers = 300  // 动态模式: 忙时最大的进程数

    PS: 如果设置成static,进程数自始至终都是 pm.max_children 指定的数量,如果设置成dynamic,则进程数是动态

    当php-fpm启动后,一个php-cgi进程约战3M内存,但是当它们处理过一些请求后,有些内存是释放不掉的,占用的内存能达到20M-30M不等。 每个值要设多少自己算,记得内存要留一半给MYSQL。

    NGINX的优化:

    防止IP访问服务器   加在 http { } 里面   ;  每个server{}都是写在http{}里面的。

    vim /usr/local/nginx/conf/nginx.conf

    (1)cpu有多少个核,就有几位数,1代表内核开启,0代表内核关闭
    (2)worker_processes最多开启8个,8个以上性能就不会再提升了,而且稳定性会变的更低,因此8个进程够用了

    参考: http://www.linuxeye.com/Linux/nginx_worker_cpu_affinity.html

    参考:http://www.php230.com/set-worker-cpu-affinity-to-up-nginx-performance.html

    示例
    两核cpu,开启两个进程
    
    worker_processes  2;
    worker_cpu_affinity 01 10;
    01表示启用了第一个cpu内核,10表示启用了第二个cpu内核
    worker_cpu_affinity 01 10;表示开启了两个进程,第一个进程对应着第一个cpu内核,第二个进程对应着第二个cpu内核
    
    两核cpu,开启八个进程
    
    worker_processes  8;
    worker_cpu_affinity 01 10 01 10 01 10 01 10;
    开启了8个进程,它们分别对应了开启2个内核
    
    8核cpu,开启8个进程
    
    worker_processes  8;
    worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001;
    00000001表示开启第一个cpu内核,00000010表示开启第二个cpu内核,依次类推
    
    8核cpu,开启2个进程
    
    worker_processes  2;
    worker_cpu_affinity 10101010 01010101;
    10101010表示开启了第2,4,6,8内核,01010101表示开始了1,3,5,7内核
    2个进程对应着8个内核
    
    配置完成后,需要导入配置文件
     /usr/local/nginx/sbin/nginx -s reload
    View Code
    worker_processes auto; //auto是自动,工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。
    worker_cpu_affinity auto;
    server     //把default的server改为禁止IP访问。
    {
    listen 80 default;
    listen 82 default;
    return 404;
    }

    Nginx 配置修改,http://blog.csdn.net/kongdeqian1988/article/details/7977927

    PHP-fpm 修改max_children,max_request

    MySQL配置更改http://blog.csdn.net/kongdeqian1988/article/details/7965268

     
  • 相关阅读:
    jquery总结
    Reporting Services子报表
    Reporting Services分组及Toggle
    Reporting Services报表钻取
    Reporting Services环境
    两种很有用的组件
    Reporting Services正确显示页码
    Reporting Services发布
    Java面试题
    BigInteger引申的一个访问权限控制解决方案
  • 原文地址:https://www.cnblogs.com/carbon3/p/5952567.html
Copyright © 2011-2022 走看看