Linux命令集1

  1. df查看系统磁盘的使用率

              -k 以千字节 KB 为单位显示各分区的信息

             -a 显示所有分区 包括大小为0 的分区

     2、系统的运行状况

         /proc/cpuinfo 本机 CPU的相关信息
       /proc/meminfo 本机内存及交换分区的使用信息
     /proc/modules 本机已安装的硬件模块信息
    /proc/mounts 本机已挂载 mount 上的设备信息

 

       3、查看文件或文件夹的大小

 

           du -b /home 以字节为单位显示 /home 文件夹下各个子文件夹的大小
          du -ks home 以千字节 KB 为单位显示/home 文件夹的总大小

           du -sh *   在某个目录下查看该文件夹占用空间的大小,注意程序运行占用的内存是统计不出来的

          df -h 只能宏观的看一下磁盘挂载占用的空间

 

      4、top

 

           执行 top 命令后每隔5 秒系统会自动刷新一次状态信息如果要指定刷新间隔在启动时加入-d 参数即可

          top  -d 2 每个两秒刷新一次

         进入 top 后按下如下按钮会有相应功能

  • 空格 立即刷新显示信息
  • M    按内存使用量排序
  • N    按进程ID 排序
  • P    按 CPU使用量排序
  • q    退出    
当有应用需要读写磁盘数据时,由系统把相关数据从磁盘读取到内存,如果物理内存不够,则把内存中的部分数据导入到磁盘,从而把磁盘的部分空间当作虚拟内存 来使用,也称为Swap。如果给所有应用分配足够内存后,物理内存还有剩余,linux会尽量再利用这些空闲内存,以提高整体I/O效率,其方法是把这部 分剩余内存再划分为cache及buffer两部分加以利用。
从磁盘读取到内存的数据在被相关应用程序读取后,如果有剩余内存,则这部分数据会存 入cache,以备第2次读取时,避免重新读取磁盘。当一个应用程序在内存中修改过数据后,因为写入磁盘速度相对较低,在有空闲内存的情况下,这些数据先 存入buffer,在以后某个时间再写入磁盘,从而应用程序可以继续后面的操作,而不必等待这些数据写入磁盘的操作完成。
如果在某个时刻,系统需要更多的内存,则会把cache部分擦除,并把buffer中的内容写入磁盘,从而把这两部分内存释放给系统使用,这样再次读取cache中的内容时,就需要重新从磁盘读取了。
通过以上分析可以得知,空闲物理内存不多,不一定表示系统运行状态很差
zombie代表僵尸进程数目
load average三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
cpu:us用户空间占用百分比;sy内核空间占用的百分比;ni用户进程空间内改变过优先级的进程占用CPU百分比;id空闲CPU百分比;wa等待输入输出的CPU时间百分比

Mem:used 使用的物理内存总量;free 空闲内存总量;buffers 用作内核缓存的内存量;
Swap:used 使用的交换区总量;free 空闲交换区总量;cached缓冲的交换区总量。

进程
NI               nice值。负值表示高优先级,正值表示低优先级;
VIRT            进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES             进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
PR 优先级

5、last查看近期用户登录的信息,
查看连接数目ps -eLF|grep java|wc -l

6、 当前tcp连接状态统计

  • 统计 pid 对应 fd 排序, tcp 连接状态
  • lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
  • netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
  •  
  • 统计 mysql 客户端连接数
  • netstat -na  |grep 3306 | awk '{print $5}' | sort | uniq -cd
  •  
  • mysql 慢查询统计

 grep Rows_examined   test-slow.log | sort -g -k9 -r|uniq -u |head -100


        netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

LAST_ACK 14
SYN_RECV 348
ESTABLISHED 70
FIN_WAIT1 229
FIN_WAIT2 30
CLOSING 33
TIME_WAIT 18122

状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

这条命令可以把当前系统的网络连接状态分类汇总

/^tcp/  : 滤出tcp开头的记录,屏蔽udp, socket等无关记录。
state[] :  相当于定义了一个名叫state的数组
NF : 表示记录的字段数,如上所示的记录,NF等于6
$NF :  表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT
state[$NF] :   表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数
++state[$NF] : 表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一
END : 表示在最后阶段要执行的命令
for(key in state) :遍历数组
print key,”\t”,state[key]  : 打印数组的键和值,中间用\t制表符分割,美化一下。

7、dstat -cdlmny 查看cpu、网络、硬盘、内存的变化情况

dstat是一个用来替换 vmstat,iostat netstat,nfsstat和ifstat这些命令的工具, 是一个全能系统信息统计工具. 与sysstat相比, dstat拥有一个彩色的界面, 在手动观察性能状况时, 数据比较显眼容易观察; 而且dstat支持即时刷新, 譬如输入dstat 3, 即每三秒收集一次, 但最新的数据都会每秒刷新显示. 和sysstat相同的是, dstat也可以收集指定的性能资源, 譬如 dstat -c 即显示CPU的使用情况.




猜你喜欢

转载自he-wen.iteye.com/blog/1517516
今日推荐