温馨提示×

centos lamp优化技巧

小樊
43
2026-01-02 08:48:41
栏目: 智能运维

CentOS LAMP 优化要点与可落地配置

一 系统层面优化

  • 资源与内核
    • 提升文件描述符与进程上限:编辑 /etc/security/limits.conf,设置如:* soft nofile 65535* hard nofile 65535* soft nproc 65535* hard nproc 65535;在 /etc/sysctl.conf 增加 fs.file-max = 1000000sysctl -p 生效。
    • 网络与连接:在 /etc/sysctl.conf 优化 TCP 栈,建议值:net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 0(NAT/负载均衡环境务必关闭)、net.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_time = 600net.ipv4.tcp_keepalive_intvl = 30net.ipv4.tcp_keepalive_probes = 3net.ipv4.ip_local_port_range = 1024 65000net.core.somaxconn = 4096net.core.netdev_max_backlog = 30000net.ipv4.tcp_max_syn_backlog = 4096net.ipv4.tcp_max_orphans = 262144
    • 内存与脏页:vm.swappiness = 10(虚拟机可更低,如 0–5)、vm.dirty_background_ratio = 5vm.dirty_ratio = 10
    • I/O 与文件系统:SSD 优先使用 noop/deadline 调度器;挂载选项加 noatime,nodiratime;选用 XFS/ext4 并合理分区对齐。
    • 基础维护:yum update -y 保持系统与应用最新;按需关闭不必要服务,减少资源占用。

二 Apache 优化

  • MPM 选择与进程模型
    • 优先使用 Event MPM(高并发更友好):yum install -y httpd-event,在 /etc/httpd/conf.modules.d/00-mpm.conf 启用 LoadModule mpm_event_module modules/mod_mpm_event.so
  • 核心参数建议(按内存与并发目标调整)
    • 连接与会话:Timeout 30KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 2
    • 并发与线程(示例):ServerLimit 256StartServers 8MinSpareThreads 64MaxSpareThreads 256ThreadsPerChild 64MaxRequestWorkers 2048MaxConnectionsPerChild 10000
  • 静态资源与压缩
    • 启用 mod_deflateLoadModule deflate_module modules/mod_deflate.so,压缩 text/html text/plain text/xml text/css application/javascript application/json
  • 其他
    • HostnameLookups OffEnableSendfile On;日志按需降级为 LogLevel warn 并使用 rotatelogs 按日切割。

三 MySQL MariaDB 优化

  • 关键内存与连接
    • InnoDB 缓冲池:将 innodb_buffer_pool_size 设为可用内存的约 50–70%(DB 专用机可更高)。
    • 连接与会话:max_connections 结合业务峰值设置(如 500–2000 起步,配合应用连接池);innodb_log_file_size 常用 256Mquery_cache_type = 0(MySQL 5.7+ 建议关闭,改用应用层缓存)。
  • 并发与 I/O
    • innodb_thread_concurrency 设为 CPU 核心数的 左右;日志与数据分离到不同磁盘;合理设置 innodb_flush_log_at_trx_commit(0/1/2 权衡持久性与吞吐)。
  • 监控与维护
    • 关注 Threads_connectedSlow_queriesInnodb_buffer_pool_reads/reads 等指标,定期分析慢查询并建索引。

四 PHP 与缓存加速

  • PHP 运行时
    • 使用 PHP-FPM 并优化进程模型:在 /etc/php-fpm.d/www.conf 设置 pm = dynamicpm.max_children 依据内存与单进程占用估算,pm.start_servers 约为 CPU 核心数的 ;启用 OPcache(生产建议开启,配合应用合理设置 opcache.memory_consumptionopcache.interned_strings_bufferopcache.validate_timestamps)。
  • 页面与数据缓存
    • 启用 mod_deflate 做传输压缩;在应用前部署 Varnish 做 HTTP 层缓存;数据层使用 Redis/Memcached 做对象/查询缓存,减少数据库压力。
  • 静态资源
    • 将图片、视频、归档等静态资源通过 CDN 或反向代理(如 Nginx)承载,降低源站负载。

五 架构升级与验证

  • 架构演进
    • 垂直扩容到一定阶段后,建议做 服务分离(Web/DB/PHP 分机),可显著提升吞吐与稳定性;分离后务必保证 时间同步(chrony/ntp) 与最小权限网络访问。
  • 压测与监控
    • 使用 abwrksysbench 进行压测,对比优化前后 QPS、P95/P99 延迟、错误率;生产变更前在测试环境验证。
    • 持续监控 CPU、内存、磁盘 I/O、网络、连接数、慢查询 等关键指标,结合日志与告警做滚动调优。

0