2018.6.8课堂笔记

w命令
w命令用来查看登录者的信息及他们的行为。

w命令的参数
(其实平时使用并不加参数)
-h:不显示标题。
-u:列出当前进程和CPU时间时忽略用户名。这主要是用于执行su命令后的情况。
-s:使用短模式。不显示登录时间、JCPU(终端机阶段作业)和PCPU(程序消耗)时间。
-f:切换显示FROM项,也就是远程主机名项。默认值是不显示远程主机名
-V:显示版本信息。

命令演示:
直接执行w即可

18:17:26 当前时间
up 2 min :开机了俩分钟
1user:有一个用户
load average: 0.09, 0.08, 0.04:平均负载,分别是每分钟负载,5分钟平均负载,15分钟平均负载。每分钟负载是0.09即平均每分钟有0.09个任务在占用cpu,这个数值的大小根据cpu的核数决定的,每分钟负载不超过cpu核数就不算高。查看cpu核数的命令:
cat /proc/cpuinfo  |grep processor |wc -l
User:登录用户名 
TTY:登录后系统分配的终端号 
From:远程主机名,即从哪登录的 
login@:何时登录 
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。 
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间 
PCPU:当前进程所占用时间 
WHAT:当前正在运行进程的命令行
 

vmstat命令
vmstat命令的含义为显示虚拟内存状态(“Viryual Memor Statics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。


vmstat语法
vmstat [选项] [参数]
-a:显示活动内页; -f:显示启动后创建的进程总数; -m:显示slab信息; -n:头信息仅显示一次; -s:以表格方式显示事件计数器和内存状态; -d:报告磁盘状态; -p:显示指定的硬盘分区状态; -S:输出信息的单位。

最常用的用法:
vmstat  x  y
x和y为数字,表示动态的显示状态。
x表示显示间隔的秒数。y表示显示多少次。
每秒显示一次,显示5次。vmstat 1 5  

916e40f9a29238a14a437af740cef06709c.jpg

字段说明
Procs(进程)
r: run,运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b: block,等待IO的进程数量,被cpu以外其他的资源阻断等待状态。

Memory(内存)
swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
free: 空闲物理内存大小。
buff: 用作缓冲的内存大小。
cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。

Swap(虚拟内存)
si: 每秒从交换区写到内存的大小,由磁盘调入内存。
so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

IO(现在的Linux版本块的大小为1kb)
bi: 每秒读取的块数
bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。

system(系统)
in: 每秒中断数,包括时钟中断。
cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。

CPU(以百分比表示)
us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
id: 空闲时间百分比

top命令
top命令动态查看进程变化,提供交互界面,用热键管理。

语法:
top [选项]

选项:
-b:以批处理模式操作; -c:显示完整的治命令;-d:屏幕刷新间隔时间; -I:忽略失效过程; -s:保密模式; -S:累积模式; -i<时间>:设置间隔时间; -u<用户名>:指定用户名; -p<进程号>:指定进程;-n<次数>:循环显示的次数。

常用的用法:
top -c :查看该进程完整的命令
top -bn1:静态显示,用于脚本

top的交互命令
h:显示帮助画面,给出一些简短的命令总结说明;
 k:终止一个进程; i:忽略闲置和僵死进程,这是一个开关式命令;
q:退出程序;
r:重新安排一个进程的优先级别; 
S:切换到累计模式; 
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
 f或者F:从当前显示中添加或者删除项目; 
o或者O:改变显示项目的顺序;
 l:切换显示平均负载和启动时间信息;
 m:切换显示内存信息; 
t:切换显示进程和CPU状态信息; 
c:切换显示命令名称和完整命令行;
M:根据驻留内存大小进行排序; 
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
w:将当前设置写入~/.toprc文件中。
1:分别显示每核cpu的占用资源百分比情况

dafbbf89ef2b1fef647dd72c1d5c8bb45cb.jpg

top:使用top查看
18:32:51 :现在的时间
17min:开机时间
1user:一个用户
load average: 0.00, 0.01, 0.04:1、5、15分钟平均负载

341 total:进程总数341个
1running:一个进程运行
340sleeping:340个进程睡眠
0 stopped:0个停止的
0 zombie:0个僵尸进程
0.2%us 用户空间占用CPU百分比
0.3%sy 内核空间占用CPU百分比
0.0%ni 用户进程空间改变优先级占用CPU百分比
99.5%id 空闲CPU百分比
0.0%wa 等待输入输出的CPU时间百分比

1868692k total 物理内存总量
118748k used 使用的物理内存
1608840k free 空闲的物理内存
141104k buffers 用作内核缓存的物理内存
Swap 交换内存行
7812092k total 交换区总量
0k used 使用的交换区总量
7812092k free 空闲的交换区总量
1607244k cached 缓冲的交换区总量,内容已存在内存中交换区大小
PPID 父进程id
USER 进程所有者的用户名
TTY 启动进程的终端名
PR 优先级
NI nice值
VIRT 使用虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的,未被换出来的内存大小,单位kb。RES=CODE+DATA
SWAP 进程使用的虚拟内存中,被换出来的大小,单位kb。
CODE 可执行代码占用的物理内存大小
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小
SHR 共享内存大小
S 进程状态。D=不可中断的睡眠状态。R=运行。S=睡眠。T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 使用物理内存百分比
TIME+ 进程使用CPU时间总计,单位1/100秒
TIME 进程使用CPU时间总计,单位秒
COMMAND 命令行/命令名
WCHAN 若进程在睡觉,则显示睡眠中的系统函数名

sar命令

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。

 

 

sar命令的用法

sar [选项] :读取sar文件中的历史记录

sar [选项] [采集间隔] [采集次数]:读取当前的状态

sar [选项] [-o file] [ -f file]:-o把加过以二进制的形式写入文件,-f读取文件。

 

选项:

-A:所有报告的总和

-b:显示I/O和传递速率的统计信息

-B:显示换页状态

-d:输出每一块磁盘的使用信息

-e:设置显示报告的结束时间

-f:从指定的文件读取报告

-i:设置状态信息刷新的间隔时间

-n:统计网络信息。sar -n选项使用6个不同的开关:DEV,EDEV,NFS,NFSD,SOCK,IP,EIP,ICMP,EICMP,TCP,ETCP,UDP,SOCK6,IP6,EIP6,ICMP6,EICMP6和UDP6 ,DEV显示网络接口信息,EDEV显示关于网络错误的统计数据,NFS统计活动的NFS客户端的信息,NFSD统计NFS服务器的信息,SOCK显示套接字信息,ALL显示所有5个开关。它们可以单独或者一起使用。 

-o:把结果以二进制的形式输入到指定文件中。

-P:报告每个CPU的状态

-R:显示内存状态

–u:输出cpu使用情况和统计信息

–v:显示索引节点、文件和其他内核表的状态

-w:显示交换分区的状态

-x:显示给定进程的装

-r:报告内存利用率的统计信息

sar查看网卡流量 -n DEV

9d82f4cd254aa2ec2772f275117a8cbb86c.jpg

查看磁盘 -d

5eadf9cff24b083670f1e58a63d580e7ba9.jpg

nload命令

动态的查看网卡流量和各IP所使用的频宽

0d249769addc12507b91dac9f7be5eaba4f.jpg

nload分为三部分。

第一部分汇总:

首先是网卡名字,IP和网卡的序列,可以用方向键来切换。

 

第二部分Incoming:

进入网卡的流量

 

第三部分Outgoing:

从这块网卡出去的流量。

 

最后面的部分:

Curr:当前的流量

Avg:平均的流量

Min:最小的流量

Max:最大的流量

Ttl:流量的总和

iostat命令

Linux系统出现了性能问题,一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。在一个以前看到系统监控工具,总在想那些监控工具的代理,如何收集系统性能信息,io性能,cpu使用,带宽使用等信息,偶然发现,不同系统均提供有性能分析工具的,代理可通过这些命令获取系统性能信息,个人猜测,不知道具体是不是这样的。其中iostat可以给我们提供丰富的IO状态数据,下边就来看一下iostat如何使用,命令能够输出那些信息。

Linux系统中通过iostat我们能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈。

 

 

 iostat命令的使用方法

语法:

iostat [选项] [时间间隔] [次数]

 

选项:

-c:只显示cpu统计。

-x:显示更详细的IO性能信息。

-d:单独显示IO信息,不显示cpu信息。

-k/m:输出结果以kB/mB为单位,而不是扇区单位。

每隔一秒显示一次IO信息,显示2次。-d -x -k

iostat -d -x -k 1 2

5ed6db9d4375690a9c29f329bb325107122.jpg

rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并 wrqm/s: 每秒对该设备的写请求被合并次数 r/s: 每秒完成的读次数 w/s: 每秒完成的写次数 rkB/s: 每秒读数据量(kB为单位) wkB/s: 每秒写数据量(kB为单位) avgrq-sz:平均每次IO操作的数据量(扇区数为单位) avgqu-sz: 平均等待处理的IO请求队列长度 await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位) svctm: 平均每次IO请求的处理时间(毫秒为单位) %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

 

 重点关注参数

1、iowait% 表示CPU等待IO时间占整个CPU周期的百分比,如果iowait值超过50%,或者明显大于%system、%user以及%idle,表示IO可能存在问题。

2、avgqu-sz 表示磁盘IO队列长度,即IO等待个数。

3、await 表示每次IO请求等待时间,包括等待时间和处理时间

4、svctm 表示每次IO请求处理的时间

5、%util 表示磁盘忙碌情况,一般该值超过80%表示该磁盘可能处于繁忙状态。

iotop命令

Linux下的IO统计工具如iostat, nmon等大多数是只能统计到per设备的读写情况, 如果你想知道每个进程是如何使用IO的就比较麻烦.

iotop 是一个用来监视磁盘 I/O 使用状况的 top 类工具。iotop 具有与 top 相似的 UI,其中包括 PID、用户、I/O、进程等相关信息。

 

iotop命令的使用方法

语法:

iotop [选项]

 

选项:

-o:只显示有io操作的进程 -b:批量显示,无交互,主要用作记录到文件。 -n NUM:显示NUM次,主要用于非交互式模式。 -d SEC:间隔SEC秒显示一次。 -p PID:监控的进程pid。 -u USER:监控的进程用户。

 

iotop常用快捷键:

左右箭头:改变排序方式,默认是按IO排序。

r:改变排序顺序。

o:只显示有IO输出的进程。

p:进程/线程的显示方式的切换。

a:显示累积使用量。

q:退出。

free命令

free命令是一个查看当前系统已用和未使用内存的命令,还可以查看buff和cache。

 

free命令的使用方法

语法:

free [选项]

 

选项:

-h:用辨识度较高的单位显示。

-m/g:用mB或者gB为单位显示。

afb6b16aa0933ab49a2ea460e6843c860ad.jpg

total:内存总大小。

used:使用了多少内存。

free:除了buff/cache剩余了多少内存。

shared:共享内存。

buff/cache:缓冲、缓存区内存数。

available:真实剩余的可用内存数。

关系:total = used + free + buff/cache

关系:available 包含 free 和 buff/cache 剩余部分,则是真实剩余内存。

 ps命令

ps命令可以查看系统的进程,和系统进程的状态,以及占用的资源。

 

ps的使用方法

ps 命令有两种不同的语法风格 —— BSD 与 UNIX 两种风格。

BSD 格式 —— 参数前面不加 -

ps aux

UNIX/LINUX 格式 —— 参数前面通常要加 -

ps -elf

74dd8b9f1c1a999df01f2a63a0e580de954.jpg

netstat命令

用于查看服务进程,启动端口,进程PID

 

netstat命令的使用方法

语法:

netstat [选项]

 

选项:

-r:列出路由表,功能同 route 命令。

-a:所有 all ,常用-an

-t:列出TCP数据包

-u:列出UTP数据包

-n:不列出进程名称,显示端口号。

-l:列出在网络监听的服务。

-p:列出网络进程PID。

-c:设置几秒钟更新一次。例如:-c 5。

 

常用的命令:

netstat  -[rn]  与路由相关 

netstat  -[lnp]  常用查询功能 

netstat  -[antulpc]  与网络接口有关

查看监听的端口和 socket

netstat -lnp

d28c6239471f0865e7273125e3afda3bf28.jpg

Active Internet是网络部分

Proto:网络数据包协议 包括tcp和udp

Recv-Q:不是由用户进程连接socket的复制的总字节数。

Send-Q:不是由远程主机传来的acknowledged总字节。

Local Address:本地IP和端口

Foreign Address:远程主机的ip和端口

State:连接状态 建立(ESTABLISED)和监听(LISTEN)

 

Active UNIX是系统自己的进程部分

Proto:一般为unix

RefCnt:连接到此的socket的进程数量。

Flags:连接的标识。

Type:socket访问类型。主要有确认连接的(STREAM)和不需要确认的(DGRAM)。

State:为CONNECTED表示多个进程已确认连接。

Path:连接到此socket的相关进程的路径。

tcpdump命令

1,服务器平时流量很少,突然把带宽跑满了,查看什么数据把带宽跑忙

2,访问服务器不成功,在服务器抓包,看是否有该IP的访问结果,多用于测试环境。

 

安装tcpdump

yum install -y tcpdump

 

3.使用tcpdump抓包

tcpdump

tcpdump -i 网卡

tcpdump -nn 数字的方式显示IP和端口。一个n是ip

tcpdump -c x 抓包数量,x为数字

tcpdump port xx 抓指定端口的包,xx为端口号

tcpdump tcp and port xx 指定协议和端口,xx为端口号,and可以省略不写

tcpdump host xx.xx.xx.xx 指定来源IP或目标IP的包 xx.xx.xx.xx为IP地址。

tcpdump -w xx.txt 把抓的包写入一个文件,xx.txt为文件名

tcpdump -s0 -w xx.txt  抓包时防止包截断,s0的0为数字0,抓一个完整的包必须加s0。

tcpdump -r xx.txt 用户查看-w抓的包,xx.txt为文件名

-w抓的包实际是包的内容,非简单的流向。如果访问一张图片,用-w可以把这张图片抓出来。只看流向的话,可以使用重定向。

95ab02aa4e030476dfdc80c77b3e6d418be.jpg

ifconfig命令

ifconfig主要可以手动启动,查看修改网络接口的相关参数。可以修改IP参数以及mtu等。 

(mtu:最大输出单元)

 

ifconfig命令的用法

ifconfig [网卡名] [up|down] //启动或者关闭一个网卡

[ ifup | ifdown ] 网卡名 //启动或者关闭一个网卡

ifconfig  网卡名 [选项] //设置网卡的子网掩码、广播、mtu

ifconfig [选项] //查询

 

选项:

mtu:设置最大传送单元。例如:mtu 1500 单位bytes

netmask:设置子网掩码

broadcast:设置广播地址

-a:不加选项显示开启的网卡,加-a选项显示所有的网卡。

查看网卡是否连接

mii-tool命令 link ok,就说明网络是连接的状态。

# mii-tool ens33

ens33: negotiated 1000baseT-FD flow-control, link ok

 

如果上述命令不可以使用,可以使用ethtool命令,最后一行显示yes说明网卡时连接的状态。

# ethtool ens33

Link detected: yes

转载于:https://my.oschina.net/u/3856250/blog/1827998

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值