日常运维-上篇

w/uptime  查看系统负载

bdabe185949d46a69f94b5e3e50829836d9.jpg

以上图片信息为:首次登陆时间,上线时长,几个用户,系统负载:1 5 15分钟之内系统的平均负载

我们如何判断负载过高呢,那就需要看我们的CPU核数,以下命令可以查看:

cat /proc/cpuinfo 系统CPU情况

a282f5a88441c8b0fbfd3202306c27c7d08.jpg

红色的框就是CPU核数.

load average 的含义

平均负载(load average)是指系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。

以路况为例, 单核CPU、单车道 情况如下:

image

  • 0.00-1.00 之间的数字表示此时路况非常良好,没有拥堵,车辆可以毫无阻碍地通过。
  • 1.00 表示道路还算正常,但有可能会恶化并造成拥堵。此时系统已经没有多余的资源了,管理员需要进行优化。
  • 1.00-*** 表示路况不太好了,如果到达2.00表示有桥上车辆一倍数目的车辆正在等待。这种情况你必须进行检查了。

多核CPU - 多车道 情况如下:

image

多核CPU的话,满负荷状态的数字为 "1.00 * CPU核数",即双核CPU为2.00,四核CPU为4.00。 

 一般的进程需要消耗CPU、内存、磁盘I/O、网络I/O等资源,在这种情况下,平均负载就不是单独指的CPU使用情况。即内存、磁盘、网络等因素也可以影响系统的平均负载值。 
在单核处理器中,平均负载值为1或者小于1的时候,系统处理进程会非常轻松,即负载很低。当达到3的时候,就会显得很忙,达到5或者8的时候就不能很好的处理进程了(其中5和8目前还是个争议的阈值,为了保守起见,建议选择低的)。

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况

36dbde7d73da84efdacafe44ad12e6751d1.jpg

vmstat 1 1秒钟显示一次

vmstat 1 5 一共显示5次

项目

含义

说明

r

等待执行的任务数

展示了正在执行和等待cpu资源的任务个数。当这个值超过了cpu个数,就会出现cpu瓶颈。

B

等待IO的进程数量

 

swpd

正在使用虚拟的内存大小,单位k

 

free

空闲内存大小

 

buff

已用的buff大小,对块设备的读写进行缓冲

 

cache

已用的cache大小,文件系统的cache

 

inact

非活跃内存大小,即被标明可回收的内存,区别于free和active

具体含义见:概念补充(当使用-a选项时显示)

active

活跃的内存大小

具体含义见:概念补充(当使用-a选项时显示)

si

每秒从交换区写入内存的大小(单位:kb/s)

 

so

每秒从内存写到交换区的大小

 

bi

每秒读取的块数(读磁盘)

现在的Linux版本块的大小为1024bytes

bo

每秒写入的块数(写磁盘)

 

in

每秒中断数,包括时钟中断

这两个值越大,会看到由内核消耗的cpu时间会越多

cs

每秒上下文切换数

Us

用户进程执行消耗cpu时间(user time)

us的值比较高时,说明用户进程消耗的cpu时间多,但是如果长期超过50%的使用,那么我们就该考虑优化程序算法或其他措施了

Sy

系统进程消耗cpu时间(system time)

sys的值过高时,说明系统内核消耗的cpu资源多,这个不是良性的表现,我们应该检查原因。

Id

空闲时间(包括IO等待时间)

 

wa

等待IO时间

Wa过高时,说明io等待比较严重,这可能是由于磁盘大量随机访问造成的,也有可能是磁盘的带宽出现瓶颈。

top 动态查看负载

fc22724bf558fe9f5c7309eb8f56f38a7ef.jpg

shift+m 以MEN排序

q 退出

PR+NI =20 进程的优先级(PR0~39,NI-20~19)

VIRT 虚拟内存

RES 物理内存

SHR 共享内存

S 进程状态

%MEM 内存使用情况

top -bn1 一次显示完(可以写进脚本里面)

top -d 1 -c一秒显示一次(默认是3秒)

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

在命令行中,n 和t 两个参数组合起来定义采样间隔和次数,t为采样间隔,是必须有 

的参数,n为采样次数,是可选的,默认值是1,-o file表示将命令结果以二进制格式 

存放在文件中,file 在此处不是关键字,是文件名。

-A:所有报告的总和

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

-B:显示换页状态

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

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

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

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

-P:报告每个CPU的状态

-R:显示内存状态

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

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

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

-x:显示给定进程的装

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

安装:yum install -y sysstat 

sar -n DEV  查看网卡流量

237f003e0f552ab578e652bd183665e8dfd.jpg

sar -n DEV -f /var/log/sa/sa10 查看指定网卡流量

41094a534adec8925a5ee74afea8fb4d8fd.jpg

sar -q 1 10 查看历史负载

c689b56d4cf639ec0d6b1f83cf5748b39e1.jpg

sar -b 1 5查看磁盘,主要看读和写

deffbfb2b343a47f97df579a2af8fc375ba.jpg

/var/log/sa/sar10 是可以直接查看的

284d2081f50195573b22b642f4743093447.jpg

nload 监控网卡流量

安装:

yum install -y epel-release

yum install -y nload

直接执行:nload

e46b763df47c27bc8bfa787b1b005fa9571.jpg

左右键可以切换网卡。

 

nload 默认分为上下两块:

上半部分是:Incoming也就是进入网卡的流量,

下半部分是:Outgoing,也就是从这块网卡出去的流量,

每部分都有当前流量(Curr),

平均流量(Avg),

最小流量(Min),

最大流量(Max),

总和流量(Ttl)这几个部分,看起来还是蛮直观的。

iostat -x 磁盘使用

%util 等待时间占比,过大说明磁盘不够用了,100%表示设备已经接近满负荷运行了。

0118a5d70bf39a9d379dc6a44579df8891e.jpg

iotop 磁盘使用 (进程),类似top。

安装:yum install -y iotop

1904851fe19dbb7b731c4e4c77fc569d49c.jpg

free 查看内存情况

55b585c61d9778eb7c6a41a5b0302b347be.jpg

默认单位为k

-m 兆为单位

-g G为单位

buffers 数据将要写到磁盘里去的空间(缓冲)

cached 磁盘取出来放到内存的空间(缓存)

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

ps 查看进程

1f322eec153ed198b0f13874a30c55dd9e1.jpg

1824d5a9bbf419f7edd27ad7f72f52c691d.jpg

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

netstat 查看端口

安装:yum install net-tools

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

netstat -lnp 查看监听端口

56c386d103a2b9870bbf659d110c9e787f0.jpg
netstat -an 查看系统的网络连接状况

e44358dd822fe7f478f85e5839e7a3102d1.jpg
netstat -lntp 只看出tcp的,不包含socket

78c7ee7fb5d7998d6a3b13d4ffd4063a099.jpg

ss -an 和netstat异曲同工

tcp的状态:

netstat -an |awk '/^tcp/ {++sta[$NF]} END {for(key in sta) print key,"\t",sta[key]}'

a358e3884ea2c6485b9f041789d80888e84.jpg

tcpdump 抓包工具

安装:yum install tcpdump

-a —— 将网络地址和广播地址转变成名字
-d —— 将匹配信息包的代码以人们能够理解的汇编格式给出
-dd —— 将匹配信息包的代码以c语言程序段的格式给出
-ddd —— 将匹配信息包的代码以十进制的形式给出
-e —— 在输出行打印出数据链路层的头部信息
-f —— 将外部的Internet地址以数字的形式打印出来
-l —— 使标准输出变为缓冲行形式
-n —— 不把网络地址转换成名字
-nn —— 不进行端口名称的转换。
-t —— 在输出的每一行不打印时间戳
-v —— 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息
-vv —— 输出详细的报文信息
-c —— 在收到指定的包的数目后,tcpdump就会停止
-F —— 从指定的文件中读取表达式,忽略其它的表达式
-i —— 指定监听的网络接口(网卡)
-r —— 从指定的文件中读取包(这些包一般通过-w选项产生)
-w —— 直接将包写入文件中,并不分析和打印出来
-T —— 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议)
-s0 抓取完整包

用法:tcpdump -nn
 tcpdump -nn -i ens33 

3afb5c8437fdc113b9d91d89e8f34cff366.jpg
 tcpdump -nn -i ens33 port 80   只抓80端口的包
 tcpdump -nn -i ens33 not port 22 and host 192.168.0.100  排除22端口和指定host
 tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap  抓100个包存到自定义文件里面

DDos udp flood 洪水攻击

 

tshark 抓包工具

安装:yum install -y wireshark

查看指定网卡80端口的web服务状态:

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"

57ca9fc3383f9f92be64740f4bcfcdbdf95.jpg

 

转载于:https://my.oschina.net/ccLlinux/blog/1843971

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值