LNMP在Ubuntu上的性能监控怎么做
导读:LNMP在Ubuntu上的性能监控实操指南 一 系统级实时监控 资源总览与进程:使用top/htop查看CPU、内存、负载、进程;安装 htop:sudo apt-get install htop。 内存与交换:使用free -h查看可用...
LNMP在Ubuntu上的性能监控实操指南
一 系统级实时监控
- 资源总览与进程:使用top/htop查看CPU、内存、负载、进程;安装 htop:sudo apt-get install htop。
- 内存与交换:使用free -h查看可用内存/缓存/交换使用情况。
- 虚拟内存与CPU调度:vmstat 1观察si/so(换入/换出)、**us/sy/id/wa(CPU)**等。
- 磁盘I/O:iostat -x 1(需安装 sysstat:sudo apt-get install sysstat)关注await、r/s、w/s、util。
- 网络与连接:ss -tulpen或netstat -tulpen核对80/443/3306等端口监听与连接状态。
- 历史与系统活动:sar(来自 sysstat)用于回看CPU、内存、I/O、网络的历史统计。
以上命令适合快速定位瓶颈(CPU密集、I/O饱和、连接堆积、内存紧张)。
二 Nginx MySQL PHP-FPM 组件监控
- Nginx
- 启用状态页:确认编译包含ngx_http_stub_status_module,在 server 配置中添加:
location /nginx_status { stub_status on; allow 127.0.0.1; deny all; }
访问 http://服务器IP/nginx_status 查看Active connections、Accepts、Handled、Requests等。 - 日志与连接:关注 /var/log/nginx/error.log;用 ss -lntp | grep :80 检查监听与连接队列。
- 启用状态页:确认编译包含ngx_http_stub_status_module,在 server 配置中添加:
- MySQL/MariaDB
- 运行状态:mysqladmin -u root -p status 查看Threads、Queries/s、Slow queries等。
- 慢查询分析:启用慢查询日志,使用mysqldumpslow /var/log/mysql/slow.log或pt-query-digest定位耗时SQL。
- 深入指标:在数据库内执行 SHOW STATUS LIKE ‘Threads_connected’; 等获取连接与会话信息。
- PHP-FPM
- 进程与性能:用 systemctl status php-fpm 或 ps aux | grep php-fpm 查看进程数、内存占用;
- 日志排查:查看 /var/log/php-fpm/error.log 与 /var/log/php-fpm/www.log(路径因发行版/安装方式可能不同)定位慢请求、Fatal、Parse错误。
以上步骤覆盖连接、请求、慢查询与错误等关键维度,便于快速定位组件瓶颈。
三 集中监控与可视化
- Prometheus + Grafana
- 采集:部署Node Exporter(9100)、Nginx Exporter(9113)、MySQL Exporter(9104) 等,Prometheus 配置 scrape_jobs 指向这些目标。
- 可视化:在 Grafana 中添加 Prometheus 数据源,导入 Node/MySQL/Nginx 官方或社区仪表盘,构建统一视图。
- Zabbix
- 安装 Zabbix Server/Frontend/Agent,在主机上创建监控项与触发器(如 Nginx 状态页、MySQL 状态、PHP-FPM 进程数、磁盘/网络阈值),实现告警与可视化。
- 轻量与托管
- 轻量方案:Netdata 一键安装,提供实时Web仪表盘与告警;
- 托管服务:Datadog/New Relic 集成 Nginx/MySQL/PHP,开箱即用地获得应用与基础设施性能洞察。
以上方案可按规模与复杂度选择,既能满足自建开源栈,也能使用托管服务降低运维成本。
四 日志分析与PHP性能剖析
- 日志集中与检索:使用 ELK(Elasticsearch + Logstash + Kibana) 或 EFK 将 Nginx、MySQL、PHP-FPM 日志统一采集、解析与可视化,便于错误趋势、访问分析、慢请求定位。
- PHP代码级剖析:
- Xdebug 用于函数级性能跟踪与调试;
- Blackfire.io 提供调用图、热点函数、外部调用分析,适合定位慢页面与瓶颈。
日志与剖析结合,既能快速发现“哪里出错”,也能回答“为什么慢”。
五 告警阈值与巡检清单
- 建议阈值与动作(需结合实际容量与SLA微调)
指标 建议阈值 动作建议 CPU 使用率 持续 > 80% 查 Top/慢查询/阻塞,扩容或限流 内存可用 可用 < 10% 或频繁 swap 优化缓存/查询,增配内存 磁盘 util > 80% 持续数分钟 清理日志/扩容磁盘,优化 I/O 连接数 接近 worker_connections 调整 worker_processes/worker_connections,启用连接复用 慢查询 明显增多 优化索引/SQL,检查锁与执行计划 5xx 错误率 突增 查 Nginx error.log、上游 PHP-FPM/数据库异常 - 日常巡检清单
- 每日:检查 Nginx/MySQL/PHP-FPM 服务状态与端口、错误日志异常;
- 每周:复核慢查询日志、磁盘空间、备份与健康检查;
- 持续:在 Prometheus/Grafana 或 Zabbix 中维护告警规则与仪表盘,保留至少7–15天监控数据用于回溯。
上述阈值与清单可作为起步策略,后续结合业务峰值与历史趋势迭代优化。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: LNMP在Ubuntu上的性能监控怎么做
本文地址: https://pptw.com/jishu/766221.html
