前言
登录 4A 平台,检查 4 台 web 服务器,4 台 app 服务器,一台数据库服务器以及执行 sql 语句
一、 检查服务器信息
1.查看服务器实时日志
输入1
coutemall_log.sh
2.查看 java 进程信息
输入1
top
观察相应个 java 进程的参数
VTRT virtual memory usage 虚拟内存
RES resident memory usage 常驻内存
SHR shared memory 共享内存
data 数据占用的内存
top 中若有除了 java 之外的进程在 res 有几百 M,要及时上报
二、检查操作系统信息
1.查看 CPU、IO 信息
输入1
vmstat 2
观察前 10 行,其中
查看 CPU 下的 us,sy,id 三个字段
us 表示用户进程的执行时间百分比
sy 表示内核进程的执行时间百分比
id 表示空闲时间的百分比
若 id 小于 30,或 sy 大于 30 要及时上报
IO
bi:每秒读取的块数
bo:每秒写入的块数
这 2 个值越大,能看到 cpu 在 IO 等待的值也越大
2.查看内存信息1
ps aux --sort -rss
MEM% 若内存使用率之和超过 50 需要上报
3.查看磁盘空间
输入1
df -h
若 use% 对应的值大于 70,应及时上报,或进行清理。一般情况下,在 tomcat 的 log 目录下,会有大的错误日志文件超过 1G。
删除文件1
2
3
4
du -sh 查看当前文件夹大小
du -h --max-depth=1 查看当前目录以及一级子目录大小
ls -lh 查看当前目录下各文件大小(不能查看目录的大小)
rm -f 删除文件(不允许删除文件夹)
若没有经验,请务必在有经验的人协助下删除。
4.查看并记录有效链接数1
netstat -nat|grep ESTABLISHED|wc -l
三、检查数据库信息
将查询的结果记录在巡检文档
查看执行最慢的 sql1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
select *
from (select sa.SQL_TEXT,
sa.SQL_FULLTEXT,
sa.EXECUTIONS "执行次数",
round(sa.ELAPSED_TIME / 1000000, 2) "总执行时间",
round(sa.ELAPSED_TIME / 1000000 / sa.EXECUTIONS, 2) "平均执行时间",
sa.COMMAND_TYPE,
sa.PARSING_USER_ID "用户ID",
u.username "用户名",
sa.HASH_VALUE
from v$sqlarea sa
left join all_users u
on sa.PARSING_USER_ID = u.user_id
where sa.EXECUTIONS > 0
order by (sa.ELAPSED_TIME / sa.EXECUTIONS) desc)
where rownum <= 50;
查看次数最多的 sql1
2
3
4
5
6
7
8
9
select *
from (select s.SQL_TEXT,
s.EXECUTIONS "执行次数",
s.PARSING_USER_ID "用户名",
rank() over(order by EXECUTIONS desc) EXEC_RANK
from v$sql s
left join all_users u
on u.USER_ID = s.PARSING_USER_ID) t
where exec_rank <= 100;
查看数据连接数1
select count(*) from v$session
若连接数超过 300 需要及时上报