以下是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]