温馨提示×

centos lnmp资源占用多少

小樊
45
2025-11-22 02:23:18
栏目: 智能运维

CentOS 上 LNMP 资源占用的参考范围

一、影响占用的主要因素

  • 并发连接与请求量:QPS、长连接、静态/动态请求比例会直接决定 NginxPHP-FPM 的进程数与 CPU 占用。
  • PHP 与数据库负载:代码是否缓存(如 OPcache)、是否频繁读写 MySQL/MariaDB、慢查询与索引缺失都会放大 CPU/内存/IOPS
  • 组件版本与编译方式:如 Nginx/MySQL/PHP 的版本差异、是否编译安装(通常比 yum 安装占用更多磁盘)、是否启用模块(如 SSL、Image Filter)等。
  • 架构与配置:进程模型与连接复用(如 Nginx worker_processes/worker_connectionsPHP-FPM pm.max_children)、缓存策略(如 Redis/Memcached)等。

二、常见场景的占用参考

  • 下表为“仅服务本身”的经验区间,实际仍取决于站点代码与访问特征(数值为经验值,非硬性上限)。
场景 典型占用(CPU/内存) 说明
空闲或极低并发 CPU:<5%;内存:约 30–150 MB 仅维持进程常驻与基础连接
小型站点(并发 ~50–200,以静态为主) CPU:约 5–20%;内存:约 150–400 MB Nginx 轻量,PHP-FPM 少量进程
中等动态站点(并发 ~200–500,少量 DB 写入) CPU:约 20–50%;内存:约 400 MB–1.5 GB PHP-FPM 与 MySQL 占用上升
高并发/重动态(并发 >500,复杂查询) CPU:可能 >50% 并抖动;内存:常见 1–3 GB+ 易出现 PHP-FPM 进程僵死/502 等,需要限流与优化

说明与依据要点:

  • Nginx 设计轻量、并发能力强,通常较省资源;PHP-FPM 在高并发下若配置不当容易成为瓶颈,出现 502 Bad Gateway 等错误。
  • CentOS 7.6 上,使用 yum 搭建的 LNMP 环境整体占用内存常见约 2–3 GB(与组件版本与扩展有关);若采用源码编译安装,整体磁盘占用可达约 10 GB(包含编译产物与依赖)。

三、快速自测与定位

  • 系统级实时与历史
    • 实时:top/htop(按 CPU/MEM 排序)、vmstat 1free -miostat -x 1(需安装 sysstat)、dstat -tanmon
    • 连接与网络:ss -tulpniftop(需安装)。
  • PHP-FPM 与数据库
    • PHP-FPM:查看进程与内存峰值(如 pm.status_path)、慢日志;根据负载调节 pm.max_children / pm.start_servers / pm.max_spare_servers
    • MySQL/MariaDB:慢查询日志、状态变量(如 Threads_connected、Queries、Innodb_buffer_pool_reads),检查索引与语句。
  • 建议记录基线:在典型业务时段采集 CPU、内存、IOPS、连接数、QPS,作为后续扩容与优化的依据。

四、降低占用与扩容建议

  • 调优进程与连接
    • Nginx:合理设置 worker_processes(一般取 CPU 核数)与 worker_connections;开启 gzip、静态资源长缓存;启用 open_file_cache
    • PHP-FPM:依据内存与 QPS 调整 pm(static/dynamic),控制 max_children;设置 request_terminate_timeout、慢日志;开启 OPcache
  • 数据库与缓存
    • 为高频查询建立合适索引,优化慢 SQL;使用 InnoDB 缓冲池;引入 Redis/Memcached 做页面/对象缓存,减轻数据库压力。
  • 架构与运维
    • 静态资源使用 CDN;启用 Nginx 限流/熔断;对突发流量考虑 读写分离/连接池;持续监控并按基线扩容(CPU/内存/磁盘/IOPS)。

0