一、系统级网络参数优化
调整内核参数以提升TCP连接效率和系统资源利用率。编辑/etc/sysctl.conf文件,添加或修改以下关键参数:
net.ipv4.tcp_syncookies=1:防止SYN Flood攻击,提升连接稳定性;net.ipv4.tcp_max_syn_backlog=8192:增加SYN队列长度,应对高并发连接请求;net.ipv4.tcp_tw_reuse=1:复用TIME-WAIT状态的连接,减少资源占用;net.ipv4.tcp_fin_timeout=30:缩短FIN_WAIT_2状态的超时时间(默认60秒),加速连接释放;net.core.somaxconn=65535:增大监听队列的最大长度,避免连接被拒绝;net.ipv4.ip_local_port_range=1024 65535:扩大临时端口范围,支持更多并发外出连接。sudo sysctl -p使配置生效。二、网络接口与连接配置
/etc/sysconfig/network-scripts/ifcfg-ens33),设置:BOOTPROTO=static
IPADDR=your_server_ip
NETMASK=your_subnet_mask
GATEWAY=your_gateway_ip
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
保存后重启网络服务:sudo systemctl restart network。firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
三、Apache服务网络优化
/etc/httpd/conf/httpd.conf:KeepAlive On
MaxKeepAliveRequests 100 # 限制单个连接的最大请求数,避免单个连接占用过多资源
KeepAliveTimeout 5 # 缩短空闲连接保持时间(默认15秒),释放闲置连接
MaxRequestWorkers(或MaxClients,旧版本参数),计算公式:MaxRequestWorkers = (总内存 - 系统预留内存) / 单个Apache进程内存占用(约20-30MB)
例如,1GB内存服务器可设置为:MaxRequestWorkers 300。同时,设置MaxConnectionsPerChild 1000限制单个进程处理的请求数,防止内存泄漏。四、MySQL/MariaDB网络与查询优化
innodb_buffer_pool_size(InnoDB引擎的核心缓存),通常设置为系统内存的50%-80%(如4GB内存设为2GB-3GB),减少磁盘I/O:innodb_buffer_pool_size=2G
max_connections(最大并发连接数)为100-200(根据应用需求调整),避免过多连接导致阻塞;启用query_cache_size(查询缓存)提升重复查询性能(注意:MySQL 8.0+已移除查询缓存,需根据版本调整)。五、PHP进程与缓存优化
/etc/php.ini:zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128 # 缓存大小(MB),根据服务器内存调整
opcache.max_accelerated_files=10000 # 缓存文件数量
opcache.revalidate_freq=60 # 缓存验证频率(秒)
phpinfo()查看已加载模块,移除未使用的模块(如xdebug、gd(若无需图片处理)),减少内存占用。六、缓存机制应用
redis.so扩展连接Redis。vcl_backend_response规则缓存HTML内容。七、监控与持续调优
iftop(实时查看端口流量)、nload(监控进出流量)、iptraf-ng(分析网络连接)工具,识别带宽瓶颈(如某端口占用过高)。安装命令:sudo yum install iftop nload iptraf-ng。top(查看CPU/内存占用)、vmstat 1(监控系统整体性能)、netstat -antp(查看TCP连接状态)命令,定位性能瓶颈(如高并发下的TIME-WAIT过多)。/var/log/httpd/access_log)、MySQL(/var/log/mysqld.log)日志,分析慢查询(MySQL的slow_query_log)、异常访问(如大量404请求),针对性优化。