lnmp性能优化
Apache 优化
Apache 采用的是 MPM(Multi-Processing Module) 多道处理模块。
它的作用是管理网络连接,调度请求。
常见的 MPM 有 3 种:
- prefork:“要求每个请求互相独立的情况下”表现最好的 Web 服务器(Apache 默认)。
- worker:支持混合的多线程进程。利用了线程低开销的特点来支持更大量的请求。
- event
一些设置:
- MaxClients:(prefork 模式)Apache 同时处理的请求数目。
- MaxRequestsPerChild:(prefork 模式)进程处理多少个请求后将自动销毁。
- 0 为无限,永不销毁
- 负载高时,设置为 0 或者比较大的值,以处理更多的请求
- 负载低时,设置为比较小的值,以释放内存
- ThreadsPerChild:(worker 模式)
实时查看 Apache 线程状态:
netstat -n | awk '/^tcp/{++S[$NF] END {for(a in S) print a, S[a]}}’
可以展示不同状态的连接信息。
netstat 用于显示各种网络相关信息:
- netstat -a:显示所有
- netstat -t:显示 TCP 相关
- netstat -u:显示 UDP 相关
- netstat -l:LISTEN 的服务
Apache | Nginx |
轻量级,反向代理 | |
阻塞处理方式 | 异步非阻塞处理方式 |
一个连接对应一个进程 | 多个连接对应一个进程 |
更适合动态请求,例如 PHP | 更适合静态请求,例如 图片,HTML, CSS |
反向代理(Reverse Proxy)方式是指以 代理服务器 来接受客户端的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端,此时代理服务器对外就表现为一个反向代理服务器。
PHP 优化
php.ini 中的配置:
- max_execution_time = 30:PHP 脚本最长执行时间
- memory_limit = 8M:PHP 脚本最大占用内存
- upload_max_filesize = 2M:
- output_buffer
PHP 集成 memcache
- 安装 memcached
- 安装 memcached 的 php 扩展
- 启动memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256
- 使用:
$mem = new Memcache;
$mem->connect(“127.0.0.1", 11211);
// 设置
$mem->set(“name", “Tom", 0, 60);
$val = $mem->get(“name");
// 更新
$mem->replace(“name", “Tom", 0, 60);
$val = $mem->get(“name");
// 删除
$mem->delete(“name");
$arr = array(“a", “b", “c");
$mem->set(“arr", $arr, 0, 60);
$arr = $mem->get(“arr");
Discussion
New Comments
暂无评论。 成为第一个!