CentOS LAMP 优化要点与可落地配置
一 系统层面优化
* soft nofile 65535、* hard nofile 65535、* soft nproc 65535、* hard nproc 65535;在 /etc/sysctl.conf 增加 fs.file-max = 1000000 并 sysctl -p 生效。net.ipv4.tcp_tw_reuse = 1、net.ipv4.tcp_tw_recycle = 0(NAT/负载均衡环境务必关闭)、net.ipv4.tcp_fin_timeout = 30、net.ipv4.tcp_keepalive_time = 600、net.ipv4.tcp_keepalive_intvl = 30、net.ipv4.tcp_keepalive_probes = 3、net.ipv4.ip_local_port_range = 1024 65000、net.core.somaxconn = 4096、net.core.netdev_max_backlog = 30000、net.ipv4.tcp_max_syn_backlog = 4096、net.ipv4.tcp_max_orphans = 262144。vm.swappiness = 10(虚拟机可更低,如 0–5)、vm.dirty_background_ratio = 5、vm.dirty_ratio = 10。yum update -y 保持系统与应用最新;按需关闭不必要服务,减少资源占用。二 Apache 优化
yum install -y httpd-event,在 /etc/httpd/conf.modules.d/00-mpm.conf 启用 LoadModule mpm_event_module modules/mod_mpm_event.so。Timeout 30、KeepAlive On、MaxKeepAliveRequests 100、KeepAliveTimeout 2。ServerLimit 256、StartServers 8、MinSpareThreads 64、MaxSpareThreads 256、ThreadsPerChild 64、MaxRequestWorkers 2048、MaxConnectionsPerChild 10000。LoadModule deflate_module modules/mod_deflate.so,压缩 text/html text/plain text/xml text/css application/javascript application/json。HostnameLookups Off、EnableSendfile On;日志按需降级为 LogLevel warn 并使用 rotatelogs 按日切割。三 MySQL MariaDB 优化
max_connections 结合业务峰值设置(如 500–2000 起步,配合应用连接池);innodb_log_file_size 常用 256M;query_cache_type = 0(MySQL 5.7+ 建议关闭,改用应用层缓存)。innodb_thread_concurrency 设为 CPU 核心数的 2× 左右;日志与数据分离到不同磁盘;合理设置 innodb_flush_log_at_trx_commit(0/1/2 权衡持久性与吞吐)。Threads_connected、Slow_queries、Innodb_buffer_pool_reads/reads 等指标,定期分析慢查询并建索引。四 PHP 与缓存加速
pm = dynamic,pm.max_children 依据内存与单进程占用估算,pm.start_servers 约为 CPU 核心数的 2×;启用 OPcache(生产建议开启,配合应用合理设置 opcache.memory_consumption、opcache.interned_strings_buffer、opcache.validate_timestamps)。五 架构升级与验证