来来来,积极讨论下,会什么说什么
我一般服务器我主要关注 CPU,内存,网络,磁盘 IO,负载情况,数据库服务器会重点关注磁盘 IO 以及 CPU 的%wa
常用的监控工具有 Jconsole,VisualVM 和 jmx,其中,用 Jconsole 主要是内存检测这一块比较好,另外两个在 CPU,线程方面直观,抽样很方便;当然了,还有配合 Linux 命令,或者做成 shell 脚本,用 crontab 定时采集信息获取数据
数据库监控比较喜欢用 MONyog
公司也有监控平台,不过要申请权限,也要申请将性能测试机器加入监控。
这些数据一般会有预警值和报警值,超过这个值就得注意了,比如 CPU 高,要确认是什么原因引起的,观察 top 命令中关注 CPU 那一行的各个百分比等,我就曾经碰到过%wa 特别高的情况,原因是 IO 瓶颈导致服务器在大量的等待输入输出。
一般的性能分析思路
1、网络瓶颈:如带宽,流量等形成的网络环境
2、配置参数:如中间件的基本配置,数据库 JDBC 连接池等;
3、扩容升级:增加应用服务器,数据库服务器以及客户机的 CPU、内存、硬盘等配置
4、SQL 优化:如全表扫描、未创建索引、限制结果返回集等;
5、部署架构:如部署负载均衡服务器及负载均衡的策略、分布式集群策略。
我一般都是在服务器上直接追踪,用 sar -n DEV……等等,逼格高吧
我这边用的是 服务性能监控的 zabbix(参数就是楼上说的),可以设置阈值(接了短信服务)和自动检索 IP 段有多少台服务器,然后直接添加。
日志写满了报警是之前社区分享的那个,不过用了一段时间就废弃了。
服务器日常监控 比如对口服务和数据库 cpu 最高到多少(图表化),cpuload 写数据,同时当前在线玩家多少...
内存一次性分配一大块出去后,看内存是否有增量
其实基本上也没啥问题。因为最近会引流或者导量,流量高进来几乎团队都知道,做完一波压测后根据结果,去临时升配、调整服务器数量。
nmon IBM 开源的,或者自己写个 python 脚本。