1 |
|
Linux关机,重启
1 |
|
查看系统,CPU信息
1 |
|
建立软连接
1 |
|
rpm相关
1 |
|
sshkey
1 |
|
命令重命名
1 |
|
时间
1 |
|
后台运行命令
1 |
|
强制活动用户退出
1 |
|
查看命令路径
1 |
|
查看进程所有打开最大fd数
1 |
|
配置dns
1 |
|
nslookup,查看域名路由表
1 |
|
last, 最近登录信息列表
1 |
|
设置固定ip
1 |
|
查看进程内加载的环境变量
1 |
|
查看进程树找到服务器进程
1 |
|
查看进程启动路径
1 |
|
添加用户, 配置sudo权限
1 |
|
强制关闭进程名包含xxx的所有进程
1 |
|
磁盘,文件,目录相关操作
vim操作
1 |
|
打开只读文件,修改后需要保存时(不用切换用户即可保存的方式)
1 |
|
查看磁盘, 文件目录基本信息
1 |
|
wc命令
1 |
|
常用压缩, 解压缩命令
压缩命令
1 |
|
解压缩命令
1 |
|
变更文件所属用户, 用户组
1 |
|
cp, scp, mkdir
1 |
|
比较两个文件
1 |
|
日志输出的字节数,可以用作性能测试
1 |
|
查看, 去除特殊字符
1 |
|
处理因系统原因引起的文件中特殊字符的问题
1 |
|
tee, 重定向的同时输出到屏幕
1 |
|
检索相关
grep
1 |
|
awk
1 |
|
find检索命令
1 |
|
网络相关
查看什么进程使用了该端口
1 |
|
获取本机ip地址
1 |
|
iptables
1 |
|
nc命令, tcp调试利器
1 |
|
tcpdump
1 |
|
跟踪网络路由路径
1 |
|
ss
1 |
|
netstat
1 |
|
监控linux性能命令
top
1 |
|
列名 | 含义 |
---|---|
PID | 进程id |
PPID | 父进程id |
RUSER | Real user name |
UID | 进程所有者的用户id |
USER | 进程所有者的用户名 |
GROUP | 进程所有者的组名 |
TTY | 启动进程的终端名。不是从终端启动的进程则显示为 ? |
PR | 优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
P | 最后使用的CPU,仅在多CPU环境下有意义 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
TIME | 进程使用的CPU时间总计,单位秒 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
%MEM | 进程使用的物理内存百分比 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
SWAP | 进程使用的虚拟内存中,被换出的大小,单位kb。 |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
CODE | 可执行代码占用的物理内存大小,单位kb |
DATA | 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb |
SHR | 共享内存大小,单位kb |
nFLT | 页面错误次数 |
nDRT | 最后一次写入到现在,被修改过的页面数。 |
S | 进程状态。D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程 |
COMMAND | 命令名/命令行 |
WCHAN | 若该进程在睡眠,则显示睡眠中的系统函数名 |
Flags | 任务标志,参考 sched.h |
dmesg,查看系统日志
1 |
|
iostat,磁盘IO情况监控
1 |
|
free,内存使用情况
1 |
|
sar,查看网络吞吐状态
1 |
|
vmstat, 给定时间监控CPU使用率, 内存使用, 虚拟内存交互, IO读写
1 |
|
- r 表示运行队列(就是说多少个进程真的分配到CPU),我测试的服务器目前CPU比较空闲,没什么程序在跑,当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。top的负载类似每秒的运行队列。如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。
- b 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。
- swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。
- free 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。
- buff Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M
- cache cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)
- si 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。
- so 每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。
- bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒
- bo 块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
- in 每秒CPU的中断次数,包括时间中断
- cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
- us 用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。
- sy 系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
- id 空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
- wt 等待IO CPU时间。
(转载本站文章请注明作者和出处 Panda)