1 scp -r appuser@10.0.61.71:/app/apache-tomcat-7.0.103 /app 从一台服务器复制到另一台服务器
2 sudo su 切换到root权限用户
3 cpu过高定位分析
A :top
B :ps-ef | grep java (pid:进程号,tid:线程号)
C: 找到对应的线程ps -mp pid -o THREAD,tid,time
D :其次将需要的线程ID转换为16进制格式:printf "%x\n" tid
E :jstack pid |grep tid -A 30
4 整机top命令
Top命令经常用来监控Linux的系统状况,比如cpu、内存的使用。
load average: 1.15, 1.42, 1.44 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。
%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比
5 cpu命令vmstat 2 1
2表示每个两秒采集一次服务器状态,1表示只采集一次。
root@ubuntu:~# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0
r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
b 列表示在等待资源的进程数,比如正在等待I/O、或者内存交换等。
id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
5 内存free
6 硬盘df
7磁盘io iostat
iostat -xm 3 2(增强显示,单位是MB,3秒刷新一次,执行2次)
需要留意await和%util的值。
如果%iowait的值过高,表示硬盘存在I/O瓶颈,%idle值高,表示CPU较空闲,如果%idle值高但系统响应慢时,有可能是CPU等待分配内存,此时应加大内存容量。
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
8网络io ifstat
ifstat -a 监控所有网络接口 下载时ifstat比较简单看网络流量概况。
# ifstat -a
lo eth0 eth1
KB/s in KB/s out KB/s in KB/s out KB/s in KB/s out
0.00 0.00 0.28 0.58 0.06 0.06
0.00 0.00 1.41 1.13 0.00 0.00
0.61 0.61 0.26 0.23 0.00 0.00