在Ubuntu上优化MySQL与Apache可以通过以下步骤进行:
MySQL优化- 硬件优化:
- 操作系统优化:
/etc/sysctl.conf
文件,调整TCP连接数量限制和系统打开文件的最大限制。增加并发连接数,设置 net.ipv4.tcp_syncookies
、net.ipv4.tcp_tw_reuse
、net.ipv4.tcp_tw_recycle
和 net.ipv4.tcp_fin_timeout
等参数。- MySQL配置优化:
/etc/mysql/mysql.conf.d/mysqld.cnf
或 /etc/my.cnf
。调整关键参数:innodb_buffer_pool_size
:设置为系统内存的50%-80%。query_cache_size
:根据数据库的查询频率调整。innodb_log_file_size
:根据数据库的写入频率调整。key_buffer_size
:增加此参数的值可以提高索引的读取性能。- 索引优化:
- 其他优化措施:
- 更新系统和软件包:
sudo apt update && sudo apt upgrade
- 选择合适的MPM模块:
prefork
、worker
或 event
。在Ubuntu 10.04及以后版本中,默认安装的是 worker
模块。- 配置MPM参数:
MaxRequestWorkers
(或 MaxClients
)、ThreadLimit
等,以匹配服务器的资源。例如,编辑 /etc/apache2/mods-available/mpm_prefork.conf
或 mpm_event.conf
文件,设置合适的值。- 启用KeepAlive:
KeepAlive onKeepAliveTimeout 5
- 使用缓存模块:
mod_expires
和 mod_deflate
等缓存技术提高响应速度。- 限制并发连接数:
MaxRequestWorkers 150MaxConnectionsPerChild 1000
- 启用压缩:
mod_deflate
模块,在用户访问网站时实时将内容进行压缩,然后再传给客户端。sudo a2enmod deflatesudo service apache2 force-reload
- 配置防火墙:
sudo ufw allow 'Apache Full'
- 监控系统资源:
top
、htop
或 gnome-system-monitor
,以便了解CPU、内存和磁盘使用情况。- 禁用不必要的模块:
- 启用HTTP/2支持(可选):
通过上述步骤,可以显著提升MySQL和Apache在Ubuntu系统上的性能表现。在进行任何配置更改之前,建议备份相关配置文件,以防出现意外问题。