Linux LAMP网络优化技巧
调整内核参数是提升网络性能的基础,需修改/etc/sysctl.conf文件并执行sysctl -p使配置生效。关键参数包括:
net.ipv4.tcp_tw_reuse=1(允许复用TIME-WAIT状态的连接,减少连接建立开销)、net.ipv4.tcp_max_syn_backlog=8192(增大SYN队列长度,应对高并发连接请求)、net.core.somaxconn=65535(增大监听队列长度,避免连接被拒绝)、net.core.netdev_max_backlog=65535(增大网络设备接收队列长度,提升数据包处理能力);net.ipv4.ip_local_port_range="1024 65535"(扩大本地端口范围,支持更多并发出站连接)、net.ipv4.tcp_fin_timeout=30(缩短TIME-WAIT状态的超时时间,快速释放端口资源);net.ipv4.tcp_ecn=1(启用显式拥塞通知,缓解网络拥塞)。这些参数需根据服务器实际负载调整,避免过度优化导致系统不稳定。Apache作为LAMP的核心组件,其配置直接影响网络响应速度:
KeepAlive On,设置MaxKeepAliveRequests 100(限制单个持久连接的最大请求数,避免单个连接占用过多资源)、KeepAliveTimeout 5(缩短空闲连接的保持时间,释放连接供其他请求使用),减少TCP连接建立/关闭的开销;MaxRequestWorkers(或MaxClients,旧版本参数),建议值为“服务器内存(MB)÷ 每个Apache进程内存占用(约20-30MB)”,避免进程过多导致系统交换(swap);mod_deflate模块(LoadModule deflate_module modules/mod_deflate.so),添加AddOutputFilterByType DEFLATE text/html text/plain text/css application/javascript(压缩HTML、CSS、JS等文本资源,减少传输数据量);使用mod_cache和mod_disk_cache缓存动态内容,降低数据库和磁盘访问频率;HostnameLookups Off,禁止Apache解析客户端域名,减少不必要的DNS查询延迟。数据库的网络性能直接影响应用响应速度:
my.cnf文件,设置bind-address=0.0.0.0(允许外网连接,需配合防火墙规则);确保防火墙开放3306端口(firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload);innodb_buffer_pool_size为系统内存的50%-80%(如8GB内存设置为4-6GB),缓存InnoDB表数据和索引,减少磁盘I/O;设置key_buffer_size=256M(优化MyISAM索引缓存,若主要使用InnoDB可适当减小);query_cache_type=1、query_cache_size=64M,适用于读多写少的场景,但需注意高并发写入时的性能损耗);调整max_connections为合理值(如150-200),避免过多连接导致数据库崩溃;使用EXPLAIN分析慢查询,添加索引优化查询性能(如为WHERE、JOIN条件字段添加索引)。PHP作为应用层脚本,其执行效率直接影响网络响应时间:
OPcache(zend_extension=opcache.so),设置opcache.enable=1、opcache.memory_consumption=128(缓存内存大小)、opcache.max_accelerated_files=4000(缓存文件数量),缓存PHP字节码,减少脚本编译次数;PHP-FPM(FastCGI Process Manager)替代传统的mod_php,通过pm.max_children(子进程数量)、pm.start_servers(启动时的子进程数)等参数优化进程池,提高PHP处理并发请求的能力;spl_autoload_register)延迟加载类文件,避免加载未使用的代码;优化数据库查询(如使用预处理语句、批量插入),减少PHP与MySQL之间的交互次数。/etc/sysconfig/network-scripts/ifcfg-ens33,设置BOOTPROTO=static、IPADDR、NETMASK、GATEWAY),避免DHCP租约更新导致的IP变化;设置正确的DNS服务器(DNS1=8.8.8.8、DNS2=8.8.4.4),减少DNS解析延迟;firewalld或iptables仅放通必要端口(HTTP 80、HTTPS 443、SSH 22),关闭不必要的端口(如FTP 21、Telnet 23),防止非法访问消耗网络资源;iftop(实时查看端口流量)、nload(监控网络带宽使用)、iptraf-ng(分析网络连接)等工具,及时发现带宽瓶颈或异常流量(如DDoS攻击);top(查看CPU/内存占用)、vmstat 1(监控系统整体性能)、ss -tulnp(查看TCP连接状态)等命令,定位性能瓶颈(如CPU过高、内存不足、连接数过多);access.log(查看热门页面、请求频率)、error.log(查看404、500错误),MySQL的slow_query.log(查看慢查询),根据日志信息调整配置(如优化热门页面的缓存策略、修复慢查询)。