Linux系统性能查询命令
top命令(整机): 可以查看进程的cpu占用率,和内存占用率。uptime 是top的精简版只看整机,不看各进程。 load average: 0.00,0.00,0.00? 表示系统1分钟,5分钟,15分钟的负载值,如果三个数平均值大于0.6,说明系统负载较高。 vmstat(CPU): 例如vmstat? -n 2 3? 每2秒采样一次,采样3次 — proce r:表示运行和等待CPU时间片的进程数,原则上1核的运行队列不要超过2,整个系统的运行队列不能超过核数的2倍。b:表示等待资源的进程数,比如正在等待磁盘I/O,网络I/O等。 — cpu? us:用户消耗CPU时间百分比,us值高,用户消耗CPU时间多,如果长期大于50%需要优化程序。 sy:内核消耗进程的CPU时间百分比。us+sy大于80%,说明可能CPU不足。 pidstat(CPU): mpstat -P ALL 2? ? ?查看所有CPU核信息 pidstat -u 1 -p 进程号? ? 查看进程使用CPU的用量分解信息 pidstat -p 进程号? -r 秒数? ?查看进程内存的占用率 每几秒采样一次 pidstat -d 2 -p 进程号? ? 查看进程磁盘占用情况 free(内存): free -m 查看系统内存单位M df(硬盘): df -h? 查看硬盘占用空间 iostat(磁盘IO): iostat -xdk 2 3? 查看磁盘快设备分布 rKB/s wKb/s 表示每秒读写量,svctm I/O await I/O分别表示请求的平均服务时间和等待时间,单位毫秒 值接近说明没有等待磁盘性能好。 ifstat(网络IO): ifstat? 查看网络IO情况 ? CPU占用过高案例排查分析: 1 用top命令查找出CPU占比最高的进程 id 2 ps -ef 或者jps进一步定位,得知哪个后台程序 3 ps -mp 进程号 -o? THREAD,tid,time? ? 定位到具体线程 4 将需要的线程ID转换为16进制格式(英文小写格式) 5 jstack 进程ID | gep tid(16进制线程ID小写字母) -A60? 查看线程出现问题的代码日志 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |