zoukankan      html  css  js  c++  java
  • java 生产环境调优排查总结

    整机:Top

    top命令后 M(以内存大小排列)P(以cpu大小排列) 1(cpu详细情况)q(退出)

    详细解释

    • load average: 0.00, 0.01, 0.05
      1分钟、5分钟、15分钟的负载情况,如果3个值相加除以3乘以100% 高于60%说明系统负载过重

    • %CPU 进程占用百分比

    • %MEM — 进程使用的物理内存百分比

    • RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

    • VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

    CPU: vmstat

    一般vmstat工具是通过两个数字参数来完成的,第一个参数是采样的时间间隔单位是秒,第二个参数是采样的次数

    • procs

      • r: 运行和等待cpu时间片的进程数,原则上1核的CPU的运行队列不要超过2,整个系统的运行队列不能超过总核数的2倍,否则代表系统压力过大
      • b: 等待资源的进程数,比如正在等待磁盘I/O、网络I/O等
    • cpu

      • us:用户进程消耗CPU时间百分比,us值高,用户进程消耗cpu时间多,如果长期大于50%,优化程序;
      • sy: 内核进程消耗的CPU时间百分比;
      • us+sy参考值为80%,如果us+sy大于80%,说明可能存在CPU不足
      • id: 处于空闲的CPU百分比
      • wa: 系统等待IO的CPU时间百分比
      • st:来自于一个虚拟机偷取的CPU时间的百分比
    • 查看多核cpu核信息
      mpstat -P ALL2(两秒采样一次所有cpu信息)

    • 每个进程使用cpu的用量分解信息
      pidstat -u 1 -p 进程编号(每秒钟采样一次这个进程的cpu占用信息)

    内存:free

    • free -m (查看可用内存 M为单位)
    • 内存情况
      • 内存充足: 应用程序可用内存/系统物理内存 > 70%
      • 内存不足,需要增加内存: 应用程序可用内存/系统物理内存 < 20%
      • 内存基本够用:20%<应用程序可用内存<70%
    • 详细查看
      pidstat -p 进程号 -r 采样间隔秒数 (每条采样一次这个进程的内存占用信息)

    硬盘:df 硬盘使用量

    • df -h

    磁盘IO: iostat

    • iostat -xdk 23

      • rkB/s 每秒读取数量量 kB;
      • wkB/s 每秒写入数量量 kB;
      • svctm I/O请求的平均服务时间,单位毫秒;
      • await I/O请求的平均等待时间,单位毫秒;值越小,性能越好;
      • util -秒钟有百分几的时间用于I/O操作。接近100%时,表示磁盘宽带跑满,需要优化程序或者增加磁盘;
      • rkB/s 、wkB/s根据系统应用不同会有不同的值,但有规律遵循;长期、超大数据读写,肯定不正常,需要优化程序读取;
      • svctm的值与await 的值很接近,表示几乎没有I/O等待,磁盘性能很好
      • 如果await的值远高于svctm的值,则表示I/O队列等待太长,需要优化程序或更换更快磁盘。
    • 详细查看 对应进程的读写情况
      pidstat -d 采样间隔秒数 -p 进程号

    网络IO:ifstat

    • 命令安装
    wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
    
    tar xzvf ifstat-1.1.tar.gz
    cd ifstat-1.1
    ./configure
    make
    make install
    
    • 查看
    # 进入ifstat 目录
    ./ifstat
    

  • 相关阅读:
    如何向MyEclipse项目的文件夹中添加JSP页面?
    MyEclipse中如何安装插件(以Subclipse为例)[转]
    s:textarea中的文本内容在什么时候才能被赋值给Action中的属性?
    由 s:hidden 引起的文本框内容不能传到 struts的Action中
    centos6分区与格式化数据盘、挂载磁盘的方法
    node实现后台权限管理系统
    在ERP软件行业项目应该怎么做?
    中小公司的Java工程师应该如何逆袭冲进BAT?
    Adminer轻量级MySQL管理工具,替代phpMyAdmin
    远程桌面连接失败了,提示身份验证错误,要求的函数不受支持
  • 原文地址:https://www.cnblogs.com/zhucww/p/13815276.html
Copyright © 2011-2022 走看看