日常运维 10.1~10.11

10.1使用w查看系统负载                                       10.7free命令

10.2vmstat命令                                                       10.8ps命令

10.3top命令                                                             10.9查看网络状态

10.4sar命令                                                             10.10linux下抓包

10.5nload命令                                                         10.11linux网络相关

10.6监控io性能

使用w查看系统负载

  • w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。
  • 查看系统负载

  • 第一行从左边开始显示的信息依次是:时间,系统运行时间,登录用户数,平均负载(1min平均负载、5min平均负载、15min平均负载)。
  • load average:平均负载,即单位时间内CPU活动进程数,这个值越大说明服务器压力越大,一般该值不超过cpu数量就可以。
  • 查看服务器CPU数量有几个(/proc/cpuinfo),professor即为系统CPU数量。逻辑cpu

  • uptime命令,uptime得到的信息和w第一行结果是一样的。

vmstat命令

  • proc 显示进程相关信息
  1. r:=run,表示运行中或等待cpu运行的进程数,如果该数长期大于服务器CPU个数,则说明CPU不够用了。
  2. b:=block,表示等待资源的进程数,如,等待网速,内存等,这列的值如果长时间大于1,则需要关注一下。
  • memory 内存相关信息
  1. swpd:表示切换到交换分区的内存量(当该数据不断变化时说明内存不足)
  2. free:表示当前空闲的内存量
  3. buff:缓冲大小
  4. cache:缓存大小
  • swap 内存交换情况
  1. si:=storage in,表示交换区写入到内存的数据量
  2. so:=storage out,表示由内存写入到交换区的数据量
  • io 磁盘使用情况
  1. bi:=block in,表示从磁盘读取数据(写入内存)的量(即:读磁盘)
  2. bo:=block out,表示(从内存读取)写入到磁盘的数据(即:写磁盘)
  3. 此处数据会直接关系到proc出的b的值。
  • system 显示采集间隔内发生的中断次数
  1. in:表示在某一时间间隔中观测到的每秒设备中断数
  2. cs:表示每秒产生的上下文切换次数
  • CPU 显示CPU的使用状态(us+sy+id=100%)
  1. us:表示用户资源所花费CPU的百分比(当该值长时间>50时说明CPU数量不足)
  2. sy:表示系统资源所花费CPU的百分比
  3. id:表示CPU处于空闲状态的百分比,{us sy id 这三个相加等于100}
  4. wa:=wait,表示等待使用CPU的百分比(该数值大说明CPU不足)
  5. st:表示被偷走的CPU所占百分比(该值一般为0,不用关注)
  • vmstat 意思是静态显示内存状态一次。

  • vmstat n 在此n代表数字,意思是以n秒每次的频率动态显示内存状态(按Ctrl+c结束命令)

  • vmstat n m,意思是每n秒显示一次,显示m次后命令结束!

top命令

  • 默认情况下会按照%cpu排序{多的排前}
  • 第一行是负载信息
  • 第二行是进程信息
  • 第三行是CPU使用信息
  • 第四行是内存使用信息
  • 第五行是交换区使用信息
  • 最下面是进程详细信息:
  1. PID:表示进程在系统中的id号,可配合kill命令结束某进程
  2. RES:表示进程所用物理内存大小(单位:K字节)
  3. %MEM:表示内存使用百分比(单位:KB)

在top状态下(按q退出),按shift+m可以按内存使用大小进行排序(默认以CPU使用占比排序),按shift+p恢复按CPU使用占比排序,,按数字1可以显示每个CPU的状态。

  • -b:批量处理模式
  • -c:显示详细进程信息
  • -bn1:静态显示所有进程(该法多用于shell脚本)

  • top -c

  • top -bn1

sar命令

  • sar命令是Linux下系统运行状态统计工具,它将指定的操作系统状态(如,平均负载,网卡流量,磁盘状态,内存使用等)计数器显示到标准输出设备。它不同于其他系统状态监控工具的地方在于,它可以打印历史信息,可以显示从零点开始到当前时刻的系统状态信息。

用法

  • 使用‘yum install -y sysstat’安装该命令!初次使用sar命令(不加选项、参数)会报错,原因是sar命令还没有生成相应的数据库文件。其数据库保存在‘/var/log/sa/’目录下,该目录下存放两种文件,分别以‘sa日期’&‘sar日期’的格式命名(区别是sar文件在第二天生成,可以使用cat命令查看;sa文件实时<每个整‘10’分钟更新一次>生成,是二进制文件,无法查看),最多保留一个月。
  •  sar [options] [参数]
  • -f:从指定文件提取报告
  • sar -n DEV m n 查看网卡流量(在此m、n的用法同vmstat命令!)
  • sar -q 查看系统负载(配合-f选项使用,查看历史负载)
  • sar -b 查看磁盘信息

sar -n DEV m n 查看网卡流量

  • 第一列是时间
  • 第二列是网卡的名字
  • 第三列 rxpck/s:表示接收数据(包)的个数
  • 第四列 txpck/s:表示发送数据(包)的个数
  • 第五列 rxKB/s:表示接收的数据量
  • 第六列 txKB/s:表示发送的数据量
  • 后三列  基本数字都是零
  •  当rxpck/s的值大于上万或者rxKB/s的值大于上万时则可能是在被攻击(需配合抓包工具进一步确认)!

-f:从指定文件提取报告

sar -q 查看系统负载(配合-f选项使用,查看历史负载)

sar -b 查看磁盘信息

nload命令

  • 使用前需要先安装该命令,在安装此包前需要先安装yum扩展源:epel-release。

nload用法,在该界面显示系统网络动态信息,可使用方向键在不同网卡之间进行切换,按q键退出,根据实时网速和总网速的比较可以评估网络状态。

监控io性能

  • iostat命令被用于监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析
  • util%:表示io等待占比,正常情况下该值和磁盘读写(r/w)成正比,如果该值很大,读写数值很小则说明硬盘存在问题,系统性能会受影响!
  • iostat -x

iotop命令

  • 需要安装命令 yum install -y iotop
  • iotop命令是一个用来监视磁盘I/O使用状况的top类工具(动态)。iotop具有与top相似的UI,其中包括PID、用户、I/O、进程等相关信息。Linux下的IO统计工具如iostat,nmon等大多数是只能统计到per设备的读写情况,想知道每个进程是如何使用IO比较麻烦的话,使用iotop命令可以很方便的查看。
  • iotop常用快捷键
  • 左右箭头:改变排序方式,默认是按IO排序
  • r:改变排序顺序。
  • o:只显示有IO输出的进程。
  • p:进程/线程的显示方式的切换。
  • a:显示累积使用量。
  • q:退出。

free命令

  • free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区
  • -b/k/m/g:分别以byte、KB、M、G为单位显示(默认以KB为单位)
  • -h:已适当的单位显示
  • -t:显示内存总和

  • buff(缓冲):当CPU向磁盘写入数据时,由于磁盘存储速率低于CPU,所以CPU工作时先将写好的数据存放在内存中,该部分内存即为缓冲内存。
  • cache(缓存):当CPU从磁盘读取数据时,由于磁盘输出速率低于CPU的读取速度,所以磁盘的数据会预先存放在内存中,该部分内存即为缓存内存。
  • total=used+free+buff/cache
  • available=free+buff/cache(空闲部分)

ps命令

  • ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
  • a:显示现行终端机下的所有程序,包括其他用户的程序。
  • u:以用户为主的格式来显示系统状况。
  • x:显示所有程序,包括历史进程。
  • -e:显示所有进程(同a)
  • -f:显示UID、PPIP、C与STIME栏
  • -l:显示进程详细信息

ps aux 把系统所有的进程列出来

ps aux |grep nginx 查看系统中某一个进程  如nginx

ps -elf 和ps aux 是差不多的

kill  1346 杀死某一个进程 kill后面跟进程id

ls -l /proc/505/  查看进程在哪里启动起来的 ls -l /proc/后面跟进程id ,每一个进程都是应该目录

  • VSZ:虚拟内存
  • RSS:物理内存
  • START:什么时候启动的
  • TIME:运行多久
  •  STAT:表示进程状态。
  • 进程状态:

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

进程/线程

进程

  • 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

状态分类

  • 进程执行时的间断性,决定了进程可能具有多种状态。事实上,运行中的进程可能具有以下三种基本状态:
  1. 就绪状态(Ready):进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
  2. 运行状态(Running):进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
  3. 阻塞状态(Blocked):由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理机分配给该进程,也无法运行。

线程

  • 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。每一个程序都至少有一个线程,若程序只有一个线程,那就是程序本身。
  • 在单个程序中同时运行多个线程完成不同的工作,称为多线程。

分类

  • 用户级线程:管理过程全部由用户程序完成,操作系统内核心只对进程进行管理。
  • 系统级线程(核心级线程):由操作系统内核进行管理。操作系统内核给应用程序提供相应的系统调用和应用程序接口API,以使用户程序可以创建、执行、撤消线程。

查看网络状态

  • netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
  • -a:=all 显示所有连线中的socket
  • -l:=listening 显示监控中的服务器的socket
  • -n:=numeric 直接使用IP地址
  • -p:=programs 显示正在使用socket的程序识别码和程序名称
  • -t:=tcp 显示tcp传输协议的连接状况

netstat -lnp 查看监听端口

netstat -an 查看系统网络连接状况

netstat -ltnp 只看tcp协议连接,不看socket

netstat -ltunp

需要关注ESTABLISHED,数字很大的话说明系统很忙,可以说明并发连接数。通常情况下数字在1000以内的话是可以接受的。

查看tcp协议状态的命令:

ppt会放到网址centos7.aminglinux.com里面

ss命令

  • ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效,缺点是不会显示进程的名称。
  • -a:显示所有套接字(socket)
  • -n:不解析服务器名称,以数字方式显示

ss -an

ss -an |grep -i listen

linux下抓包

tcpdump命令

安装命令yum install -y tcpdump

  • tcpdump命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-w选项将数据包保存到文件中,方便以后分析。
  • -i:指定网卡名,使用指定的网络送出数据包
  • -c:指定数量
  • -w:指定存放位置
  • -r:=read,从指定文件查看数据包数据

用法

  • tcpdump -nn -i ens33 (第一个n表示以数字形式显示IP,如果不加该选项会显示成主机名)
  • tcpdump -nn eth0 port 22 (not port 22)指定端口为22的(非22的)
  • tcpdump -nn eth0 port 22 and host 192.168.8.1 指定多个条件(host:主机,后面跟主机名或IP)
  • tcpdump -nn -i ens33 -c 100 -w /tmp/1.cap 指定抓包数量和存放位置

  • cap内容无法使用cat命令查看,可使用tcpdump -r命令查看
  •  包内内容为使用tcpdump打包时的数据
  • tcpdump -r 1.cap 查看指定数据包内容

tshark命令

  • 该命令也是用于抓包的。
  • 使用前需要安装工具

  • 查看指定网卡80端口的1个web服务的访问情况(类似于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" ]

linux网络相关

ifconfig命令

  • 查看网卡IP
  • 查看网卡IP还可以使用命令:ip add,这个显示有点乱!
  • 如果系统没有命令使用yum安装

  • ifconfig -a
  • 显示所有网卡信息(包括down掉的或者没有IP地址的网卡)

启动/关闭网卡

  • ifup/ifdown [网卡名]
  • 应用环境:更改单个指定网卡配置后需要重启才能生效,为了避免关闭或重启所有网卡可以对单个网卡执行该命令
  •  如果网卡正在使用中,不要单独使用ifdown命令!!!解决办法: “# ifdown ens33 && ifup ens33”,使两个命令一起执行!

增加虚拟网卡

  • 切换至网卡配置文件复制系统网卡

  • 编辑复制的配置文件
  • 更改NAME、DEVICE、IPADDR,系统已经设定网关可DNS,所以在此可以删除GATEWAY和DNS,也可以保留,但是,如果要保留该选项则必须保持其与系统网卡配置一致!

  • 重启系统网卡

  • 查看网卡信息

  • 检测虚拟网啊IP是否通畅在Windows系统cmd下ping该IP即可!

查看网卡是否连接

  • 方法1 mii-tool [网卡名]
  • link ok说明网卡连接OK!

  • 方法2 ethtool [网卡名]
  • Link detected: yes说明网卡连接OK

  • 更改主机名&主机名配置文件
  • 更改后的主机名要在系统重启之后才会显示,或者进入子目录
  • centos6不支持该命令,centos7支持

  • DNS配置文件:/etc/resolv.conf

  • 在 /etc/syscinfig/network-scripts/ifcfg-ens33中定义

  •  更改网卡配置即可更改DNS配置文件,更改后需要重启网卡(ifdown/ifup)后生效,也可编辑‘/etc/resolv.conf’临时更改DNS配置,该办法在重启网卡后会被网卡配置文件中的DNS覆盖!

  • DNS配置文件:/etc/resolv.conf

  • vim  /etc/hosts
  •  使用vi命令可在该配置文件下可以自定义IP所对应的域名(一个IP对应多个域名或一个域名对应多个IP,用空格隔开,当一个域名对应多个IP时,以配置文件中靠后面的配置为准),但是该域名配置只在本机生效!

tcp三次握手四次挥手(重点) http://www.doc88.com/p-9913773324388.html
tshark几个用法:http://www.aminglinux.com/bbs/thread-995-1-1.html

猜你喜欢

转载自blog.csdn.net/weixin_42604768/article/details/82012245