以下是Debian上LAMP(Linux+Apache+MySQL+PHP)的性能优化技巧:
更新系统与软件包
sudo apt update && sudo apt upgrade
移除不必要的软件包以释放资源。
优化内核参数
编辑 /etc/sysctl.conf
,调整以下参数(示例):
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn = 65535
net.ipv4.ip_local_port_range = 1024 65535
执行 sudo sysctl -p
生效。
选择高效MPM模块
event
或 worker
模块,替代默认的 prefork
:sudo a2dismod prefork && sudo a2enmod event
sudo systemctl restart apache2
配置示例(/etc/apache2/mods-available/event.conf
):<IfModule mpm_event_module>
StartServers 2
MinSpareThreads 25
MaxRequestWorkers 150
</IfModule>
启用缓存与压缩
mod_cache
和 mod_cache_disk
。mod_deflate
,添加以下配置:<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
调整并发连接参数
MaxClients 150 # 根据服务器内存调整,避免超过内存限制
KeepAlive On
KeepAliveTimeout 5
配置缓冲池与连接数
编辑 /etc/mysql/mariadb.conf.d/50-server.cnf
:
[mysqld]
innodb_buffer_pool_size = 1G # 通常设为物理内存的50%-80%
max_connections = 200
query_cache_size = 0 # MySQL 8.0+ 已弃用,可移除或设为0
重启服务:sudo systemctl restart mariadb
。
索引与查询优化
EXPLAIN
分析慢查询,优化SQL语句。定期维护
sudo mysqlcheck --all-databases --optimize
启用OPcache
安装并配置OPcache:
sudo apt install php-opcache
编辑 php.ini
:
[opcache]
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=4000
重启PHP-FPM或Apache。
调整PHP配置
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 10M
使用PHP-FPM
编辑 /etc/php/7.x/fpm/pool.d/www.conf
,优化进程管理参数:
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
重启PHP-FPM:sudo systemctl restart php7.x-fpm
。
htop
、top
监控系统资源。/var/log/apache2/other_vhosts_access.log
)和MySQL慢查询日志。注意:修改配置前需备份原文件,建议在测试环境验证后再应用到生产环境。
参考来源:[1,2,6,7,8,9,11,12,13,14]