ssh 连接服务器
ssh user@www.xxx.com -p60022
用户名@ip 端口
进入日志所在目录
cat FILENAME 查看文本文件,P.S. 在查较大文件时为了避免刷屏,请使用 cat FILENAME | more 或 more FILENAME
zcat FILENAME 查看已压缩的文本文件,P.S. 在查较大文件时为了避免刷屏,请使用 zcat FILENAME |more
tac FILENAME 倒序查看日志
grep KEYWORD FILENAME 根据KEYWORD 关键字查找文本文件
grep -C N KEYWORD FILENAME 查找关键字上下N行
zgrep KEYWORD FILENAME 根据KEYWORD 关键字查找已压缩的文本文件
vim FILENAME **不推荐**
tail -n N FILENAME 查看最后N行日志
tail -n +N FILENAME 查看从第N行开始 至文件末日志
tail -f FILENAME 跟踪日志
使用cat命令
搜索关键信息
cat info.log | grep 关键字信息
带颜色
cat info.log | grep 关键字信息 --color
带出堆栈信息
cat info.log | grep 关键字信息 --color -C 10
压缩文件查看
zgrep id info.log.zip
查看服务器性能
1.内存检查:free -m
注意,重点看的是第二行,-/+ buffers/cache行,第一个数字是实际消耗的内存,第二个是实际空闲的内存。
2.系统进程监控 top
Top命令注意看输出的第二、第三行。第二行(Tasks)表示系统运行的进程数,这个数值一般不能太大,比如超过300、甚至400-500,这个比较容易理解,我们一般开启的服务、进程外加系统进程都不会太多,太多肯定有问题。第三行表示CPU的使用情况。
Top可以按 M按内存使用排序,P按CPU使用情况排序。
3. 进程监控加强版 htop
htop提供了比top更强大的功能,推荐安装。能排序、查找、显示进程树等功能。
htop还有一个强大的功能的,就是strace,按s可以直接对选中进程进行strace。
4. 找出害群之马 (ps命令)
如果通过top、htop、free以及iostat、vmstat(后面会讲)对系统分析后,我们接下来就要找系统的问题进程了。在top、htop中我们一般可以直观的看出到底是那个进程出问题了,不过有时这两个命令不能完全确定,我们还要使用ps确认系统中的最差进程。
自定义输出格式 -o 可以定义我们想要显示的列,列名基本和输出的表头一样,只是要小写,如下:
ps -A -o %mem, %cpu
5. IO监控iostat
iostat也是系统监控常用的命令,可以看到各个磁盘的IO情况,其他参数不再赘述,主要说明一个参数。iostat -x会输出 %util列。
定义:
%util: 一秒中有百分之多少的时间用于 I/O 操作,或者说一秒中有多少时间 I/O 队列是非空的。即 delta(use)/s/1000 (因为use的单位为毫秒)
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
一般情况下,%util应该越小越好,10%以下正常,30%IO比较繁忙。50%以上一般是有问题的。可以配合%idle,该值过小系统肯定是有问题的。
6. vmstat 系统监控
vmstat和IO差不过,不过重点是监控cpu、内存等系统资源。
对内存监控,我们比较关心swpd、free、si、so。一般系统不繁忙的状态下,我们看到swpd,so的值不会持续很高,经常为0。如果swpd过高,那么就是系统内存经常不够用。
对CPU监控,我们可以查看r(运行进程数)、us、sy、id(空闲CPU),如果r的数字大于系统CPU个数,则面临CPU不够用的危险,通过id(CPU空闲比例)分析,如果过小,则可以判断是CPU不足。