2018-1-23 Linux学习笔记

10.6 监控io性能

  • 本节主要学iostat和iotop两个监io性能的命令.
  • iostat命令用于监视系统输入输出设备和CPU的使用情况.它汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.iostat有一个弱点, 就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。
  • 直接使用iostat即可查看,但用iostat -x可查看更为详细的信息(使用该命令应重点关注%util这一列)
  • iotop命令用于监视磁盘I/O使用状况. iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息. Linux下的IO统计工具如iostat只能统计到per设备的读写情况, 如果想知道每个进程是如何使用IO的,使用iotop命令可以很方便的查看.

    10.7 free命令

  • free命令用于查看内存的使用情况(使用该命令应重点关注available这一列).
  • free -m/-g/-h --->以M/G/系统认为合适的单位显示内存使用情况
  • buffer/cache区别
    磁盘--->内存(cache)--->CPU
    CPU--->内存(buffer)--->磁盘

  • 公式: total=used+free+buff/cache
  • available包含free和buffer/cache的剩余部分

    10.8 ps命令

  • ps命令用于查看当前系统的进程状态.可以搭配kill指令随时中断、删除不必要的程序.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等, 大部分信息都是可以通过执行该命令得到.
  • 常用用法:
    ps aux | grep 命令名
    ps -elf
    选项含义:
    a : 显示现行终端机下的所有程序,包括其他用户的程序
    u : 以用户为主的格式来显示程序状况
    x : 显示所有程序,不以终端机来区分
    -e : 此选项的效果和指定"A"选项相同
    -l或l : 采用详细的格式来显示程序状况
    -f : 显示UID,PPIP,C与STIME栏位
    -A : 显示所有程序

  • STAT部分说明:
    D 不能中断的进程
    R run状态的进程
    S sleep状态的进程
    T 暂停的进程
    Z 僵尸进程
    < 高优先级进程
    N 低优先级进程
    L 内存中被锁了内存分页
    s 主进程
    l 多线程进程
    + 前台进程

    10.9 查看网络状态

  • netstat命令可用于查看网络状态信息.
  • 常用用法:
    netstat -lnp --->查看监听端口(重点关注Active Internet connections (only servers)这一部分)
    netstat -an --->查看系统的网络连接状况(重点关注state状态为ESTABLISHED的情况,一般该状态个数1000以内,过大则需重点关注排查)
    选项含义:
    -a : 显示所有连线中的Socket
    -l : 显示监控中的服务器的Socket
    -n : 直接使用ip地址,而不通过域名服务器
    -p : 显示正在使用Socket的程序识别码和程序名称

  • 小技巧:
    统计系统当前各种状态的连接的数目:
    netstat -an | awk ‘/^tcp/{++sta[$NF]}END{for(key in sta)print key,"\t",sta[key]}‘

    补充:
    ss -an 和 netstat 用途相似.

    10.10 linux下抓包

  • tcpdump命令用于抓取网络包,,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中, 方便以后分析.
  • 常用用法:
    tcpdump -nn -i ens33 --->抓取经过网卡ens33的数据包
    tcpdump -nn port 80 -i ens33 --->抓取80端口的数据包
    tcpdump -nn not port 22 and host 192.168.1.100 --->抓取非22端口并且来自IP为192.168.1.100的数据包
    tcpdump -nn -c 100 -w /tmp/1.cap --->抓取100包并保存到文件/tmp/1.cap
    tcpdump -r /tmp/1.cap --->读取文件/tmp/1.cap

  • tshark命令用于抓取并分析网络包.
    使用tshark命令需先安装wireshark包
    yum install -y wireshark
    小技巧:
    显示访问http请求的域名以及uri:
    tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"


扩展知识:
TCP协议的三次握手四次挥手机制简单原理(相关知识来自网络,感谢原作者).

  • 三次握手:
    1.A向B发起建立连接请求: A--->B
    2.B收到A的发送信号,并且向A发送确认信息: B--->A
    3.A收到B的确认信号,并向B发送确认信号: A--->B

通过第一次握手,B知道A能够发送数据.
通过第二次握手,A知道B能够发送数据.
结合第一,二次握手,A知道B能够接收数据.
结合第三次握手,B知道A能够接收数据.

  • 四次挥手:
    1.A向B发起请求,表示A没有数据要发送了: A--->B
    2.B向A发送信号,确认A的断开连接请求: B--->A
    3.B向A发送信号,请求断开连接,表示B没有数据要发送了: B--->A
    4.A向B发送确认信号,同意断开: A--->B

为何第2,3次挥手不能合在一次挥手中呢?因为此时A虽然不再发送数据了,但还能接收数据,B可能还有数据要发送给A,所以两次挥手不能合并为一次.

挥手次数比握手多一次,是因为握手过程,通信只需要处理连接即可.而挥手过程,通信除了处理连接,还要处理数据.

原文地址:http://blog.51cto.com/13517946/2064320

时间: 2024-10-03 05:10:18

2018-1-23 Linux学习笔记的相关文章

linux学习笔记--vim程序编辑器

1,在linux系统中使用文本编辑器来编辑自己的linux参数配置文件是一件很重要的事情,因此系统管理员至少应该要熟悉一种文本编辑器. 2,不同的linux distribution各有不同的附加软件,linux命令行界面下的文本编辑器有Emacs,pico,nano,joe与vim 3,学习vim的重要性 (1)所有的UNIX Like系统都内置vi文本编辑器,其他的文本编辑器不一定存在 (2)很多软件的编辑接口都会主动调用vi (3)vim具有程序编辑的能力,可以主动以字体颜色辨别语法的正确

Linux学习笔记一 磁盘管理常用命令

Linux学习笔记一 磁盘管理常用命令 Linux系统下,一切均是文件,磁盘是一种特殊的块设备文件. 常用的硬盘接口类型 并口:IDE ,SCSI 串口:SATA,SAS 磁盘设备文件设备文件的命令规则: IDE: 设备名为/dev/hda, /dev/hdb-.  (末尾的a ,b-代表不同的IDE硬盘) SCSI:设备名为/dev/sda, /dev/sdb-.(末尾的a,b-代表不用的SCSI硬盘 机械式硬盘: track: 磁道(盘面上由外向里划分成不同的磁道) cylinder: 柱面

linux学习笔记(一)-文件目录相关的命令&&文件通配符

一.几个命令概述 1.查看目录以及目录底下的文件:ls(-a显示隐藏文件:-d显示目录本身:-l显示详细内容:-R递归显示,即把子目录的文件也显示出来:-h以更加被人类理解的格式显示,比如显示文件大小的时候用M为单位显示:-i显示文件索引ID) 2.查看文件内容:cat,head,tail,less,more,tac cat:将文件连接起来,输出在屏幕上,可接多个文件(-E:显示隐藏的换行符:-n:显示出行号) head:默认查看文件的前10行(-n#:查看文件的前#行.空白行也是一行) tai

Linux学习笔记四:Linux的文件搜索命令

1.文件搜索命令  which 语法:which [命令名称] 范例:$which ls  列出ls命令所在目录 [[email protected] ~]$ which ls alias ls='ls --color=auto' /bin/ls 另外一个命令:whereis [名称名称],也可以列出命令所在目录. [[email protected] ~]$ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/ma

Linux学习笔记——例说makefile 增加系统共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Linux学习笔记——如何使用echo指令向文件写入内容

0.前言 本文总结如何使用echo命令向文件中写入内容,例如使用echo指令覆盖文件内容,使用echo指令向文件追加内容,使用echo指令往文件中追加制表符. echo向文件中输出内容的基本方法是使用IO重定向指令--">",默认情况下echo输出到标准输出中,使用>指令可重定向输出到文件中. 1.echo指令基本用法 [1]Linux官方用户手册--echo指令 [2]输入指令获得帮助 sudo echo --help 返回内容如下 用法:echo [短选项]... [字

linux学习笔记-type命令

语法: type [-tpa] name 参数: type:    不加任何参数时,type会显示出name是外部命令还是内部bash内置命令 -t:      当加入-t参数时,type会将name以下面这些字眼显示出它的意义 file:表示为外部命令 alias:表示该命令为命令别名所设置的名称 builtin:表示该命令为bash内置的命令功能 -p:     如果后面接的name为外部命令时,才显示完整文件名 -a:     会有path变量定义的路径中,将所有含有name的命令都列出来

Linux学习笔记三:Linux的权限处理命令

1.改变文件或目录权限  chmod 语法:chmod [{ugo} {+-=} {rwx}] [文件或目录] 或 [mode] [文件或目录] 第一种语法中: 这里的u是所有者,g是指所属组,o是指其他人 +是指增加权限,-是指减少权限,=是指赋予权限 r是指读权限,w是指写权限.x只是执行权限 第二种语法中: 在这里,r的值是4,w的值是2,x的值是1. 这里写的mode,是指一组数字.如:421.这里的421,是指所有者所拥有权限的数字总和是4,所属组所拥有权限的总和是2,其他人所拥有权限

Linux学习笔记033_10

网卡命名: eth0,eth1 子接口(一个网卡上多个IP):eth0:1,eth0:2 ifconfig: 查看网卡信息 ifup ethx:开启网卡 ifdown ethx:关闭网卡 配置网卡: 图形 命令: ONBOOT为yes表示启动计算机时通过网卡 全局网络配置: 第一行为开启ipv4,第二行为开启ipv6,第三行为计算机名,注意计算机名在DNS要解析到,如clc.com 可以加一行:GATWAY=192.168.1.254,不过以network-scripts中的网关优先级高 DNS

Linux学习笔记033_11进程

ps:(process information,静态的) 显示进程信息,不加参数显示当前终端的进程 a:包括所有终端的进程 x:不属于任何终端的进程,和任何用户无关系的进程 u:显示出进程的拥有人 f:显示进程的附属关系(依赖关系,父子进程) USER:进程的拥有人 PID:进程ID,默认用进程ID排序 VSZ:程序在运行时调用多少虚拟内存 RSS:真实内存 TTY:?不属于任何终端,进入终端之前就运行 STAT:状态,s为睡眠 TIME:进程持续时间 COMMAND:运行这个进程的指令 ps