LNMP环境并发优化
LNMP环境并发优化
服务器 8核32Gx3

如图是一条http请求的生命周期,共经过nginx,php-fpm,PHP三个模块
所以我们可以从nginx,php-fpm,PHP三个维度去优化
一、php-fpm(dynamic和static两种方式)
1.pm = dynamic; #对于专用服务器,pm可以设置为static.如何控制子进程,选项有static和dynamic。如果选择static,则由pm.max_children指定固定的子进程数。
如果选择dynamic,则由下开参数决定:
2.pm.max_children = 700; #子进程最大数.
3.pm.start_servers = 50; #启动时的进程数.
4.pm.min_spare_servers = 50; #保证空闲进程数最小值,如果空闲进程小于此值,则创建新的子进程.
5.pm.max_spare_servers = 700; #保证空闲进程数最大值,如果空闲进程大于此值,此进行清理.
6.pm.max_requests = 500; #设置每个子进程重生之前服务的请求数. 对于可能存在内存泄漏的第三方模块来说是非常有用的. 如果设置为 '0' 则一直接受请求. 等同于 PHP_FCGI_MAX_REQUESTS 环境变量. 默认值: 0.
7.request_terminate_timeout = 10s; #设置单个请求的超时中止时间. 该选项可能会对php.ini设置中的'max_execution_time'因为某些特殊原因没有中止运行的脚本有用. 设置为 '0' 表示 'Off'.当经常出现502错误时可以尝试更改此选项.
8.request_slowlog_timeout = 10s; #当一个请求该设置的超时时间后,就会将对应的PHP调用堆栈信息完整写入到慢日志中. 设置为 '0' 表示 'Off'.
9.slowlog = log/$pool.log.slow #慢请求的记录日志,配合request_slowlog_timeout使用.
二、NGINX
(一) nginx配置
worker_processes 16; #操作系统启动多少个工作进程运行Nginx.
worker_rlimit_nofile 65535; #进程最大可打开文件数.
worker_connections 65535; #单个工作进程可以允许同时建立外部连接的数量.
fastcgi_connect_timeout=300; #连接到后端fastcgi超时时间.
fastcgi_send_timeout=300; #向fastcgi请求超时时间(这个指定值已经完成两次握手后向fastcgi传送请求的超时时间).
fastcgi_rend_timeout=300; #接收fastcgi应答超时时间,同理也是2次握手后
(二)nginx对静态项目配置缓存
配置如下:
设置 web 缓存区名称为 unagi,内存缓存空间大小为 500MB,自动清除超过 1 天没有被访问的缓存数据,硬盘缓存空间大小为 30GB.
fastcgi_cache_path /tmp/unagi_cache levels=1:2 keys_zone=unagi_cache:500m inactive=1d max_size=30g;
fastcgi_temp_path /tmp/unagi_cache/temp;
location ~ \.php$ {
#缓存配置
fastcgi_cache unagi_cache;
fastcgi_cache_valid 200 301 302 1h;
fastcgi_cache_valid any 10m;
#设置 web 缓存的 key 值,nginx 根据 key 值 MD5 哈希存储缓存>,这里根据 “FastCGI 服务器的 IP、端口、请求的 URI” 组合成 key
fastcgi_cache_key 127.0.0.1:9000$request_uri;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
三、PHP(php.ini)
max_execution_time #php程序最大执行时间
四、配置完毕重启nginx和PHP-FPM
- nginx -s reload #平滑启动nginx
- kill -USR2 'cat (fpm主进程文件)' #杀死php-fpm进程并重新启动
- 使用ab进行压力测试,(ab -n 15000 - c 600 [http://]host[:port]/path),top -u (php-fpm所属用户) 查看php-fpm占用内存和cpu使用情况,ps -ef |grep php-fpm | wc -l查看php-fpm进程数,结合阿里云控制台进行查看,测出每台服务器并发峰值。
注意
FastCGI 进程,一旦加载就不会释放当其工作完成后,就休眠于 FastCGI 系统池中,等待下一次被唤
LNMP环境并发优化的更多相关文章
- 通达OA2008优化前端web为lnmp环境及后续优化
1.安装lnmp环境 具体参考:CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9 http://b ...
- 在Raspberry配置优化安装LNMP环境总结
在Raspberry配置优化安装LNMP环境总结 apt-get update apt-get install nginx apt-get install php5-fpm php5-cli php5 ...
- 【第五课】LNMP环境的入门
目录 一. LNMP环境介绍 二.Mysql的二进制免编译安装 三.PHP 7.2.5编译部署 四.Nginx的编译安装 五.YUM安装Nginx 一. LNMP环境介绍 LNMP(Linux + N ...
- [转]你如何面对—LNMP高并发时502
From : http://www.topthink.com/topic/5683.html 之前php-fpm配置: 单个php-fpm实例,使用socket方式,内存8G 静态方式,启动php-f ...
- Linux实战教学笔记28:企业级LNMP环境应用实践
一,LNMP应用环境 1.1 LNMP介绍 大约在2010年以前,互联网公司最常用的经典Web服务环境组合就是LAMP(即Linux,Apache,MySQL,PHP),近几年随着Nginx Web服 ...
- LNMP环境搭建之php安装,wordpress博客搭建
LNMP环境搭建之php安装,wordpress博客搭建 一.介绍: 1.什么是CGI CGI全称是"通用网关接口"(Common Gateway Interface),HTTP服 ...
- 阿里云ECS安装lnmp环境-转载自:http://ninghao.net/blog/1368
远程控制你的服务器 远程控制 Linux 类型的系统的服务器,比如 CentOS 系统的服务器,一般不像 Windows 服务器那样,使用图形界面的远程控制.我们需要使用命令行工具,远程连接到服务器, ...
- LNMP环境搭建
LNMP环境搭建 Linux + Nginx + MySQL + PHP PHP是一种脚本语言,当前中国乃至世界上使用PHP语言开发的网站非常普遍 Nginx是一个web服务软件,和apache是一类 ...
- 阿里云(ECS)Centos服务器LNMP环境搭建
阿里云( ECS ) Centos7 服务器 LNMP 环境搭建 前言 第一次接触阿里云是大四的时候,当时在校外公司做兼职,关于智能家居项目的,话说当时俺就只有一个月左右的 php 后台开发经验(还是 ...
随机推荐
- Angular4.x学习日志
码云链接:https://gitee.com/ccsoftlucifer/Angular4Study 1.部署环境 安装nodejs 安装angular脚手架程序 2.创建工程 ng new 项目名 ...
- IPv6 RIPng (PT)
在Cisco路由器上配置RIPng 一.拓扑图 二.地址表 Device Interface IPv6 Address R1 F 0/0 2001:0DB8:CAFE:0001::1/64 S 0/ ...
- Spring Cloud微服务实践之路-起始
由于各种原因,公司要对现有的营销产品进行微服务化,如果可以,则对公司所有产品逐步进行微服务化. 而本人将探索这条路,很艰难,但干劲十足.整个过会记录下来,以便以后查阅. 感谢公司!感谢领导! 相关书籍 ...
- 【4】学习C++之内存管理
单个内存申请及释放: int *p = new int; if(p == NULL) { //内存分配失败 //异常处理 } delete p; p = NULL; 内存块的申请及释放: ]; if( ...
- maven配置及IDEA配置maven环境
一. maven的下载及配置 1. maven下载地址 可以在网址:https://maven.apache.org/download.cgi下载最新版本的maven 2. maven文件解压缩 解压 ...
- java笔试要点(java多线程)
一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌 ...
- (Linux)初探cmake .和make命令
cmake编译OpenCV工程 首先我们看到文件夹中有一cpp文件,CMakeLists.txt文件和一张图片 首先进行cmake .命令 接着进行make命令 . 然后就得到了可执行文件,也就是说可 ...
- 2018-2019-2 20165221『网络对抗技术』Exp4:恶意代码分析
2018-2019-2 20165221『网络对抗技术』Exp4:恶意代码分析 实验要求: 是监控你自己系统的运行状态,看有没有可疑的程序在运行. 是分析一个恶意软件,就分析Exp2或Exp3中生成后 ...
- 防盗链之URL参数签名
一.概述 传统的 IP 禁用.referer 防盗链.User-Agent 防盗链.地区访问控制等防盗链措施已经无法完全满足用户要求,所以开发出URL参数签名方式来防盗链 二.实现 Token防盗链是 ...
- 023_System Integrity Protection in macos
背景:之前写的在/usr/bin下的一个登陆线上脚本,由于使用timemachine还原了系统,发现怎么也修改不了,加sudo也不行. 后来查询才得知系统默认开启了"系统集成保护" ...