Linux LAMP性能监控方法
LAMP(Linux、Apache、MySQL、PHP)是常见的Web应用架构,其性能监控需覆盖系统层、Web服务器、数据库、应用层及日志,以下是具体方法:
系统层监控是LAMP性能分析的基础,用于掌握服务器整体资源使用情况:
M键可按内存排序,按P键按CPU排序,快速定位高资源消耗进程。free -h以人类可读格式(GB/MB)显示。vmstat 1 5表示每1秒采样一次,共5次,重点关注si(swap in)、so(swap out)、wa(I/O等待)等指标。iostat -x 1可查看磁盘的读写速率(r/s、w/s)、I/O等待时间(await)等。netstat -tuln显示监听端口,ss -s统计连接数),排查网络瓶颈。Apache作为Web服务器,其性能直接影响应用响应速度:
mod_status模块),显示当前活动的请求、工作进程数等信息。mod_rewrite)。/var/log/apache2/error.log(Debian/Ubuntu)或/var/log/httpd/error_log(CentOS/RHEL),定位配置错误、权限问题等。MySQL作为数据存储层,其性能瓶颈(如慢查询、锁等待)会显著影响应用性能:
mysqladmin status查看服务器状态(如连接数、查询数),mysqladmin extended-status显示详细状态变量。SHOW STATUS LIKE 'Queries'查看总查询数,SHOW PROCESSLIST查看当前所有连接及执行的SQL语句,识别长时间运行的查询。slow_query_log=1,long_query_time=2),记录执行时间超过阈值的SQL,用pt-query-digest(Percona Toolkit)分析日志,找出性能瓶颈SQL。PHP作为应用层语言,其性能问题(如脚本执行慢、内存泄漏)需重点监控:
pm.status_path = /status,可通过http://server-ip/status查看PHP-FPM的进程数、活跃进程数、请求处理时间等(需Nginx/Apache配置反向代理)。/var/log/php-fpm/error.log(PHP-FPM)或/var/log/php7.x-fpm.log(PHP版本),定位语法错误、致命错误。对于大规模或分布式LAMP环境,需借助高级工具实现集中化监控与可视化:
glances -w)或API集成到其他系统。requests_per_second、MySQL的innodb_buffer_pool_hit_ratio),Grafana负责可视化(如 dashboard 展示),支持告警规则配置(如CPU使用率超过80%时发送邮件)。check_apache插件)。日志是排查性能问题的关键,自动化监控可提前发现问题:
tail -f /var/log/apache2/access.log查看Apache访问日志(统计请求数、响应时间),tail -f /var/log/mysql/error.log查看MySQL错误日志,journalctl -u apache2 -f(Systemd系统)查看系统日志。df -h检查磁盘空间,free -m检查内存),若超过阈值(如磁盘空间剩余10%)则发送邮件/短信警报。