一 概念普及

SWAP就是LINUX下的虚拟内存
<https://baike.baidu.com/item/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98>分区,它的作用是在物理内存
<https://baike.baidu.com/item/%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98>使用完之后,
将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。

二 运维日常

1.操作系统状态监控

每天登陆系统查看系统运行的负荷如何,有无报错日志或报警日志。

2.操作系统故障排除

依据操作系统故障日志分析出现该报警或报错的原因,从而解决问题,保证操作系统的高可用性。

3.服务器状态确认

服务器上除了跑着操作系统,必然会安装一些应用程序或数据库,每天需要查看linux系统上运行着的应用程序或数据库状态是否正常。

4.备份

数据库备份和恢复,一般来说只要给数据库制定了备份策略它会自己备份,只需要监控备份任务是否执行了就可以。

5.服务器调优

linux随着使用时间的增长,状态会有所下降,有能力的可以对操作系统及数据库进行性能调优,保证系统处于一个最佳状态。

三 运维日常常用命令

3.1 查看系统负载命令 w 和 uptime

(1)使用w查看系统负载




第一行从左到右依次表示当前时间、系统已运行时间、登录用户数(终端登录显示为ttyx,远程登录显示为pts/x)、平均负载(每1分钟、每5分钟、每15分钟)主要是注意第一个负载值,值越大说明服务器压力越大。一般情况下,这个值不要超过服务器的逻辑cpu数量就没有关系。

(2)查看服务器的逻辑cpu

cat /proc/cpuinfo



只有一个逻辑cpu,那么每分钟的负载值为1是最理想的,也就是每个进程有占用一个逻辑cpu是最合适的。

(3) uptime命令也可以显示负载信息,不过不是很详细

显示负载信息 w  和 uptime命令对比



3.2 vmstat 命令

vmstat命令可以查看到当使用w命令查看到系统存在压力时,系统压力出现在什么地方。
vmstat 1 //显示的信息每一秒打印一次,按下ctrl +c 结束 vmstat 1 5 //每一秒钟显示一次 ,共显示5次后结束
比如我正在对下面这台服务器上传文件,使用 vmstat 命令显示结果如下:



    出现的信息中需要关注的是以下几列
   
(1)r(run):表示运行或等待cpu时间片的进程数。等待cpu时间片不是说这个进程没有运行,实际上某一时刻1个cpu只能有一个进程占用,其他进程只能处于等待状态,这些等待cpu资源的进程依然是运行状态。如果该数值长期大于逻辑cpu的个数,那么就说明cpu资源不够用

    (2)b(block):表示等待资源的进程数,这个资源指的是I/O、内存、网速等资源。这个数值长期大于1,那么也是需要关注的
    (3)swpd
:表示切换到交换分区中的内存数量。当内存不够的时间,才会将数据临时放到交换分区中。如果该数值在频换的变化,那么内存与交换分区在进行频繁的读写,那么也就说明内存不够了。如果这个数值在变化,那么si与so肯定也是有变化的。

    swap显示内存的交换情况
    (4)si :表示由交换分区写去到内存的数据量。单位为KB
    (5)so:表示由内存写入到交换分区的数据量

io显示磁盘的使用情况
(6)bi :表示从磁盘读取数据量的多少(读磁盘)。单位KB
(7)bo:表示从磁盘写入数据量的多少(写磁盘)
如果这2个数值在频换的变化,表示磁盘在频换的读写。磁盘的读写速度比较慢,肯定会影响b列数值的变化。

(8)us:表示用户级别(如:网站、mysql)占用cpu资源的时间百分比。如数值长期大于50,也说明cpu资源不够了。
(9)sy:表示系统本身占用cpu资源的时间百分比
(10)id:表示cpu处于空闲状态的时间百分比
us+sy+id=100%
(11)wa:表示I/O等待所占用的cpu的时间百分比。数值也很大,说明cpu不够用
(12)st:表示被偷走的cpu资源(进行过虚拟化后,一些子机会占用cpu资源)

3.3 top命令
用top命令显示进程所占用的系统资源。每3秒中显示一次。



    第一行与w命令查看到的信息是一样的

    第二行:
    Tasks :总进程数
    runing:正在运行的进程数
    sleeping:正在处于休眠状态的进程数。
    stopped:已经停止的进程数
    zombie:父进程被意外中止,留下一些子进程无人管理。这就是僵尸进程数。

    第三行是cpu百分比。需要关注的是us。系统负载可以很高,%us
    可能很低或是0%。但是当%us很高的话,那么系统负载肯定很高。

Kib MeM :内存的使用情况。总大小、剩余、已使用、写入磁盘/从磁盘中读取的缓存大小(关注)
Kib Swap :交换分区的使用情况

    默认情况是是使用%cpu来排序。 


(2)按大写的M来用内存排序,切换为%cpu排序按大小的P



(3)数字1显示所有CPU的使用情况。



(4)top -c 命令可以查看到具体的命令



(5)top -n1 静态的一次性显示所有的信息,适合在写脚本时使用。

(6)PID用来”杀死”进程。kill +PID就能杀死相对于的进程。

<>3.4 sar命令

用sar命令几乎可以监控系统所有的资源状态。它的优点是可以打印历史信息,可以显示当天从零点到当前时刻的系统状态信息。
yum install -y sysstat //安装sar命令包
安装后使用sar命令会报错,那么因为sar工具还没有生成相应的数据库文件(无需实时监控,因为不用去查询那个文件库)。大约10f分钟后会生成文件



sar -n DEV 查看流量网卡



 

rxpck:接收到的数据包。接收的数据包量太大会导致网络堵塞,网站不能打开。数据包上万了,肯定不正常。
txpck:发送出去的数据包
rxkB:接收的数据量。
txkB:发送的数据量。100M带宽换算成速率也就是12.8M/s.

注意: 在/var/log/sa目录下保存了文件最多保留一个月



查看系统负载   sar -q



查看磁盘读写  sar -b 1 10



3.5 nload命令

用nload命令更直观的查看网卡流量。需要安装2个包

yum -y install epel-release
yum -y install nload

直接运行 nload 命令出现以下信息



 

 

在 /var/log/sa 目录下有2种日志

sa: 二进制文件,不能使用cat, 只能用 sar -f 去查看它(绝对路径)、

sar: 可以直接cat 查看文件内容。