温馨提示×

ubuntu lamp如何调性能

小樊
43
2026-10-04 00:57:14
栏目: 智能运维

在 Ubuntu 上搭建的 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 环境,调性能通常从 系统层、Apache、MySQL、PHP、缓存 几方面入手。下面给你一套实用的优化思路(偏生产环境)。


一、系统层优化(基础)

1. 关闭 Swap 或降低使用

sudo swapoff -a

或调整 swappiness:

echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

2. 文件描述符限制

ulimit -n 65535

永久生效:

sudo nano /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

二、Apache 性能优化(重点)

1. 选择合适的 MPM

查看当前 MPM:

apache2ctl -V | grep MPM

推荐:

  • 高并发:event(默认,性能好)
  • 老 PHP:prefork

启用 event:

sudo a2dismod php*
sudo a2enmod mpm_event
sudo systemctl restart apache2

2. 调整 MPM 参数

编辑:

sudo nano /etc/apache2/mods-enabled/mpm_event.conf

示例(4核8G):

<IfModule mpm_event_module>
    StartServers             4
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadLimit             64
    ThreadsPerChild         25
    MaxRequestWorkers      200
    MaxConnectionsPerChild  5000
</IfModule>

3. 关闭无用模块

sudo a2dismod status autoindex cgi
sudo systemctl restart apache2

4. 开启 KeepAlive(适度)

KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

三、PHP 性能优化

1. 使用 PHP-FPM(强烈推荐)

sudo apt install php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2

2. 调整 PHP-FPM

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

关键参数:

pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

3. 安装 OPcache

sudo apt install php-opcache
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

四、MySQL / MariaDB 优化

1. 使用调优脚本(新手友好)

sudo apt install mariadb-server
sudo mysql_tuner

2. 常见参数(my.cnf)

innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
query_cache_type = 0
max_connections = 200

⚠️ query cache 在新版本 MySQL 已废弃


五、缓存加速(立竿见影)

1. 安装 Redis

sudo apt install redis-server
sudo apt install php-redis

2. 页面缓存(WordPress 等)

  • WordPress:WP Super Cache / Redis Object Cache
  • 自建系统:Redis / Memcached

六、启用 Gzip / 静态资源优化

sudo a2enmod deflate expires
<IfModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>

七、监控 & 压测

  • 查看负载:htop
  • Apache:apache2ctl status
  • 压测:
ab -n 1000 -c 100 http://localhost/

总结(最简优化路径)

✅ Apache event + PHP-FPM
✅ OPcache
✅ Redis 缓存
✅ MySQL buffer pool 调大
✅ 关闭无用模块

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Apache / PHP / MySQL 版本
  • 是 网站类型(WP / Laravel / 自建)
  • 服务器配置(CPU / 内存)

我可以直接给你一套 可复制的配置文件。

0 踩