Linux第六周学习博客作业

对第六周学习的内容进行总结

简述osi七层模型和TCP/IP五层模型

OSI(Open System Interconnect),时国际标准化组织ISO指定的网络互联模型规范,它是最标准和最科学的网络互联模型。
TCP/IP五层模型是互联网发展初始已经存在并自然发展多年的一套通用网络互联模型,它是目前使用和支持最广泛的模型,相对于OSI标准,它的支持和应用更普遍。

OSI七层模型

OSI标准定义了起个层次的网络架构,从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 数据从高级到低级层,是一个将数据加上各种协议打包并组织成特定大小的流式数据包的过程,当传输完成,又是一个从低到高层的拆包还原成源数据的过程。

  1. 物理层
    实现数字信号最终实际传输的层,对应了很多实际的物理介质和设备,如网线、同轴电缆、光纤、集线器等。
  2. 数据链路层
    数字比特信号以在此层帧的形式,使用链路地址(如以太网的MAC地址)来访问介质,并进行差错校验。工作在这一层的常见设备有:网桥、交换机等。
  3. 网络层
    这一层用到的基本协议就是IP,IP是整个网络层的基础。本层通过IP寻址来实现两个节点的连接,源端传输层送来的数据包通过本层的IP协议,选择合适的路由和交换节点,正确无误的送给目的端的传输层。工作在这一层的常见设备有:路由器、三层交换机。
  4. 传输层
    TCP、UDP协议就工作在这一层。它为上层提供了端到端(如A主机的某端口到B主机的某端口)的可靠和透明的数据传输服务,包括处理差错控制和一些设定操作控制等。它对于高层而言向下屏蔽了低层的通信细节,使得高层用户看到的是两个传输实体之间的一条可控制并且可靠的数据通路。
  5. 会话层
    是用户应用程序与网络之间的接口,为2个表示层实体提供建立和使用连接的方法。它将不同实体的表示层连接成会话,组织和协调两个会话之前的通信,对这一层次的数据交换进行管理。
  6. 表示层
    对来自应用层的数据进行解释,为其赋予相应的含义与特定的格式后传给会话层。例如对数据进行编码、格式转换 、压缩解压缩、加密解密等。
  7. 应用层
    是最接近用户的一层,直接面对用户提供服务,组织和实现用户希望在网络上完成的工作任务。应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。

    OSI_Detail.png

TCP/IP五层模型

TCP/IP五层模型相对于OSI七层模型进行了简化表示,主要是OSI高级的应用层、表示层、会话层在TCP/IP模型中统一为应用层。
它们的对应关系如下图所示:

 

OSI_TCP.png

每一层对应的常见设备:

 

OSI_TCP_Device.png

每一层对应的常用协议:

 

OSI_TCP_Protocal.png

简述iproute家族命令

在CentOS系统中,iproute的版本号与内核是一致的,因为很多iproute的设置是直接放置到内核当中的。

  1. ip命令
    命令格式 ip [OPTION] OBJECT {COMMAND | help}
    常用OBJECT有: link, addr, route, netns
    注意: OBJECT可简写,各OBJECT的子命令也可简写,接上OBJECT之后可以在后面再接上具体的OBJECT 支持的选项
    help的使用: 例如# ip link help可以显示简要的帮助信息
  • ip link
    功能:网络接口的配置
    • ip link show:显示网络接口的信息
      可以使用dev IFACE来指定接口

    • ip link set dev IFACE COMMAND : 对网络接口进行设置,dev可以省略

    • ip netns : 管理网络用户空间

    • ip address COMMAND : 管理ip网络接口地址,address可简写addr

    • ip route COMMAND : 实现路由表管理

  1. ss命令
    用来显示socket的工具
    ss [options] [ FILTER ]

  1. nmcli
    一种新兴的网络管理命令
    格式nmcli [ OPTIONS ] OBJECT { COMMAND | help }

  1. nmtui
    图形界面设置和管理网络

nmtui.png

详细说明进行管理工具htop、vmstat等相关命令,并举例

htop

  1. 简介
    相当于监控软件TOP的增强版,htop有如下优势:
  • 相对于top更简单的操作
  • 支持图形界面和横向纵向的滚动操作以及鼠标操作
  • 杀进程时可以不用输入进程号
  1. 使用介绍
    在命令行输入htop回车即可进入htop界面

    htop1.png

下面分区域截图说明界面使用方法

 

htop2.png

左侧分别有cpu、内存、交换分区的使用情况,右边分别有Tasks进程总数、thr线程总数、当前运行的进程数、Load average(系统1分钟,5分钟,10分钟的平均负载情况)、Uptime系统运行的时间

htop3.png
  • PID:进程号
  • USER:运行此进程的用户
  • PRI:进程的优先级
  • NI:进程的NICE值,默认的为0,范围从-20到+19,正值表示低优先级,负值表示高优先级,可以进行调整
  • VIRT:进程占用的虚拟内存值
  • RES:进程占用的物理内存值
  • SHR:进程占用的共享内存值
  • S:进程的运行状况,R表示正在运行、S表示休眠,等待唤醒、Z表示僵死状态
  • %CPU:该进程占用的CPU使用率
  • %MEM:该进程占用的物理内存相对于总内存的百分比
  • TIME+:该进程启动后占用的总的CPU时间
  • COMMAND:进程启动的启动命令名称
htop4.png
快捷键 功能说明
h, ? , F1 查看htop使用说明
S, F2 htop 设定
/, F3 搜索进程
, F4 增量进程过滤器
t, F5 显示树形结构
<, >, F6 选择排序方式
[, F7 可减少nice值以提高对应进程的优先级
], F8 可增加nice值以降低对应进程的优先级
k, F9 可对进程传递信号
q, F10 结束htop
u 只显示一个给定的用户的过程
U 取消标记所有的进程
H 显示或隐藏用户线程
K 显示或隐藏内核线程
F 跟踪进程
P 按CPU 使用排序
M 按内存使用排序
T 按Time+ 使用排序
l 显示进程打开的文件
I 倒转排序顺序
s 选择某进程,按s:用strace追踪进程的系统调用

F1显示帮助信息:

 

htop5.png

鼠标点击Setup或者按下F2之后进入htop的设定页面
关于F2设定页面的说明:

  • Meters
    设定顶端的 显示信息,分为左右两侧,Left column 表示左侧的显示的信息,Right column表示右侧显示的信息,如果要新加选项,可以选择Available meters添加,F5新增到上方左侧,F6新增到上方右侧。Left column和Right column下面的选项,可以选定信息的显示方式,有LED、Bar(进度条)、Text(文本模式),可以根据个人喜好进行设置

    htop6.png
  • Display options
    htop7.png

  • Colors
    htop8.png

  • Colums
    htop9.png

在界面下按F3或直接输入”/”就可以直接进入搜索模式,按照进程名进行搜索

 

htop10.png

搜索到的进程会用设定的颜色标记出来,方便查看

F4:过滤器
相当于模糊查找,不区分大小写,下方输入要搜索的内容后,则界面只显示搜索到的内容,更加方便查看

 

htop11.png

F5:以树形方式显示进程

 

htop12.png

F6:排序方式
按下F6后会跳转至上图界面,让您选择以什么方式进行排序,在Sort by下选择您要以什么来排序

 

htop13.png

F7,F8:调整进程nice值
F7表示减小nice值(增大优先级),F8增大nice值(减小优先级),选择某一进程,按F7或F8来增大或减小nice值,nice值范围为-20到19

 

htop14.png

F9:杀死进程
选择某一进程按F9即可杀死此进程

F10:退出htop

vmstat命令

最常见的Linux监控工具之一,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。相比top,可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率
一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数

vmstat命令的显示结果中,各项参数的说明如下:

  • r 表示运行中的队列(就是说多少个进程真的分配到CPU),当这个值超过了CPU数目,就会出现CPU瓶颈了。这个也和top的负载有关系,一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,此时主机的状态就需要警惕了。top的负载类似每秒的运行队列。如果运行队列过大,表示CPU很繁忙,一般会造成CPU使用率很高。
  • b 表示阻塞的进程。
  • swpd 虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么很可能该升级内存或者进行优化了。
  • free 空闲的物理内存的大小。
  • buff 缓冲页面间的大小,Linux系统为了提高内存和硬盘(或其他I/O设备)之间的数据交换的速度而设计的。buffers是用来元数据,例如inode、权限等等。
  • cache cache直接用来记忆我们打开的文件,给文件做缓冲,buffers与cache共同作用构成了系统的缓存机制,提高了程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。
  • si 每秒从磁盘进入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存的进程解决掉。
  • so 每秒虚拟内存进入磁盘的大小,如果这个值大于0,同样表示经常有虚拟内存数据交换。
  • bi 块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,当有磁盘I/O操作时会有数字表示。
  • bo 块设备每秒发送的块数量。
  • in 每秒CPU的中断次数,包括时间中断
  • cs 每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用。
  • us 用户CPU时间,一般此时间比例适当大一些表示主机在较多的执行用户进程,是比较理想的状态。
  • sy 系统CPU时间,如果太高,表示系统调用时间长。
  • id 空闲CPU时间,一般来说,id + us + sy = 100,一般可以认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
  • wt 等待I/O的CPU时间。这个指标通常意味着CPU在等待磁盘读写操作的时间,用百分比表示。wait越大则机器io性能就越差。说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈。

ps命令

使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多 的资源等等。 ps为我们提供了进程的瞬时状态,它所提供的查看结果并不动态连续的;如果想对进程实时监控,应该用 top 工具。

使用格式:ps [options] [–help]

惯常用法:

  • ps a 显示现行终端机下的所有程序,包括其他用户的程序。
  • ps -A 显示所有进程。
  • ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
  • ps -e 此参数的效果和指定”A”参数相同。
  • ps e 列出程序时,显示每个程序所使用的环境变量。
  • ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
  • ps -H 显示树状结构,表示程序间的相互关系。
  • ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
  • ps s 采用程序信号的格式显示程序状况。
  • ps S 列出程序时,包括已中断的子程序资料。
  • ps -t<终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
  • ps u 以用户为主的格式来显示程序状况。
  • ps x 显示所有程序,不以终端机来区分。

ps命令显示结果中各项HEAD的含义:

  • USER 用户名
  • UID 用户ID(User ID)
  • PID 进程ID(Process ID)
  • PPID 父进程的进程ID(Parent Process id)
  • SID 会话ID(Session id)
  • %CPU 进程的cpu占用率
  • %MEM 进程的内存占用率
  • VSZ 进程所使用的虚存的大小(Virtual Size)
  • RSS 进程使用的驻留集大小或者是实际内存的大小,Kbytes字节。
  • TTY 与进程关联的终端(tty)
  • STAT 进程的状态:进程状态使用字符表示的(STAT的状态码)
  • R 运行 Runnable (on run queue) 正在运行或在运行队列中等待。
  • S 睡眠 Sleeping 可中断睡眠, 在等待某个条件的形成或接收信号。
  • I 空闲 Idle
  • Z 僵死 Zombie(a defunct process) 进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放。
  • D 不可中断睡眠 Uninterruptible sleep (ususally IO) 不能被信号唤醒, 进程必须等待直到有某种特定条件满足(例如I/O完成)。
  • T 终止 Terminate 进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行。
  • P 等待交换页
  • W 无驻留页 has no resident pages 没有足够的记忆体分页可分配。
  • X 死掉的进程
  • < 高优先序的进程
  • N 低优先序的进程
  • L Lock, 有记忆体分页分配并锁在记忆体内
  • s session leader,会话领导者(在它之下有子进程);比如shell下运行好多进程,这个shell就是领导者,若这个shell被关闭,其下的所有进程全部会关闭
  • l 多进程的进程(使用 CLONE_THREAD, 类似 NPTL pthreads)
    • 位于前台的进程
  • START 进程启动时间和日期
  • TIME 进程累计占用的cpu时间
  • COMMAND 由哪个命令启动的此进程,带中括号的是内核线程
  • NI Nice值
  • PRI 进程优先级编号(Priority)。0-139:实时优先级,优先级与静态相反。 100-139:静态优先级,数字越小,优先级越高,必要时可让出优先级
  • WCHAN 进程正在睡眠的内核函数名称;该函数的名称是从/root/system.map文件中获得的。
  • FLAGS 与进程相关的数字标识

kill命令

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户可以影响其他用户的进程,非root用户只能影响自己的进程。
使用格式kill [ -s signal | -p ] [ -a ] pid

  1. 命令参数:
  • -l 后加信号编号可以列出相应信号信息,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
  • -a 当处理当前进程时,不限制命令名和进程号的对应关系
  • -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
  • -s 指定发送信号
  • -u 指定用户
  1. 实例

使用until和while分别实现192.168.0.0/24网段内,地址是否能够ping通,ping通则输出”success!”,若ping不通则输出”fail!”

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:/91117

发表评论

登录后才能评论

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达注册  guoqibee.com  guoqibee.com  万达娱乐登录  万达娱乐注册  万达娱乐  万达娱乐招商  万达娱乐主管QQ  万达招商