4.9 快手 一面 50min
1.如何查看磁盘io 以每秒输出
linux查看磁盘io使用情况_linux查看io使用情况-优快云博客
这个题目的答案就是 :
iostat -d 1//仅仅显示磁盘io情况
//还显示其他内容
vmstat 1//较为简单
top -d 1//较为全面
主要介绍vmstat 以及拓展内容中详细记录了其他命令
以上是ubuntu虚拟机运行代码示例:页面每秒滚动输出;
参考:vmstat命令参数及其介绍_linux cpu占用率怎么看-优快云博客
输入命令的格式:
两个数字参数来完成的
第一个参数: 采样的时间间隔数,单位是秒,
第二个参数: 采样的次数
接下来我们看看各个输出参数含义:
参考:每天学一个 Linux 命令(112):vmstat - 知乎 (zhihu.com)
#Procs(进程)
r: 运行队列中等待的进程数量
b: 等待IO的进程数量#Memory(内存)(单位:KB)
swpd: 使用虚拟内存大小
free: 空闲物理内存大小
buff: 缓冲区中的内存数
cache: 用作高速缓存的内存大小#Swap (交换页面)(单位:KB/秒)
si:从磁盘交换到内存的交换页数量
so: 从内存交换到磁盘的交换页数量
#IO(io块设备 现在的Linux版本块的大小为1kb)(单位:块/秒)
bi: 发送到块设备的块数
bo: 从块设备接收到的块数
#system(系统)
in: 每秒中断数,包括时钟中断
cs: 每秒上下文切换数
#CPU(以百分比表示)
us: 用户进程执行时间百分比(user time),us的值比较高时,说明用户进程消耗的CPU时间多
sy: 内核系统进程执行时间百分比(system time),sy的值高时,说明系统内核消耗的CPU资源多
id: 空闲时间百分比wa: IO等待时间百分比,wa的值高时,说明IO等待比较严重
st:用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间
拓展一下:
还有很多命令可以查看到linux系统的运行状态:
1.通过top和ps命令,我们可以获得系统不同进程的状态、CPU使用情况;
2.也可以使用mpstat查看每个CPU的情况;
3.以及使用iostat查看磁盘io使用情况等。
top & ps 命令
参考文章了解更多呀:
TOP命令参数详解---10分钟学会top用法 - 知乎 (zhihu.com)
top中有很多参数的操作用 30 个实例完全解读 TOP 命令 - 知乎 (zhihu.com)
ps 最有用的两个命令
ps aux
ps -ef | grep [需要查询的内容]
我需要查找包含关键字 test 的内容
iostat 命令
具体参见本文第三节:
linux查看磁盘io使用情况_linux查看io使用情况-优快云博客
2.如何修改域名对应的IP
当时不知道 hosts 文件,所以卡了,然后面试官让我复述DNS解析过程:
DNS解析过程
总结就是:
1.浏览器 缓存 ->命中 返回对应IP (未命中 步骤2)
2.本地hosts文件 ->命中 返回对应IP(未命中 步骤3)hosts文件的重要性
(以上是在本地进行)
3.本地DNS服务器 缓存 ->命中 返回对应IP (未命中 步骤4)
80%的请求都可以在这一步查询到 ;
本地域名服务器与发出请求的客户端之间是 : 递归查询(确保本地域名服务器给客户端的请求以回答)
本地域名服务器与其他域名服务器之间是 : 迭代查询(减少服务器访问压力)
4.根域名服务器
5.顶级域名服务器
6.权限域名服务器(区分权限域名;二级、三级、四级……的区别)
权限域名服务器可能不止查询一次
返回对应IP到本地域名服务器
流程如下:
- 首先本地域名服务器向根域名服务器发起请求,根域名服务器是最高层次的,它并不会直接指明这个域名对应的 IP 地址,而是返回顶级域名服务器的地址,也就是说给本地域名服务器指明一条道路,让他去这里寻找答案
- 本地域名服务器拿到这个顶级域名服务器的地址后,就向其发起请求,获取权限域名服务器的地址
- 本地域名服务器根据权限域名服务器的地址向其发起请求,最终得到该域名对应的 IP 地址
7.本地域名服务器 返回IP地址给操作系统 并且 缓存对应IP及域名
8.操作系统将 IP 地址返回给浏览器,同时自己也将 IP 地址缓存起来
9.浏览器就得到了域名对应的 IP 地址,并将 IP 地址缓存起来
补充6.
理解了以上内容,我们再看看hosts文件,这个文件在linux和Windows中存储位置不太一样:
linux: /etc/hosts
Windows: C:\Windows\System32\drivers\etc\hosts
hosts文件位置以及如何修改hosts文件【Windows】【以github为例】-优快云博客
这个文件很详细了讲述了如何修改hosts文件;
Linux 修改 etc/hosts文件详细介绍 / 张生荣 (zhangshengrong.com)
这个文件可以加深理解 ;
注意:
但是根据前述DNS的流程,我们在浏览器键入网址(域名)时,若要访问hosts文件中的设定,应该先清除浏览器缓存,才能完成hosts文件的读取与指定域名的IP的访问。
hosts文件修改后可以解决的问题:
1 远程登录linux主机过慢问题
2 双机互连
1.linux中/etc/hosts文件详细介绍 - zhangdapangzi - 博客园 (cnblogs.com)
DNS面试补充问题:
参考:
8 张图带你彻底搞懂 DNS 域名解析过程 - 知乎 (zhihu.com)
DNS为什么用UDP?
更正确的答案是 DNS 既使用 TCP 又使用 UDP。当进行区域传送(主域名服务器向辅助域名服务器传送变化的那部分数据)时会使用 TCP,因为数据同步传送的数据量比一个请求和应答的数据量要多,而 TCP 允许的报文长度更长,因此为了保证数据的正确性,会使用基于可靠连接的 TCP。
当客户端向 DNS 服务器查询域名 ( 域名解析) 的时候,一般返回的内容不会超过 UDP 报文的最大长度,即 512 字节。用 UDP 传输时,不需要经过 TCP 三次握手的过程,从而大大提高了响应速度,但这要求域名解析器和域名服务器都必须自己处理超时和重传从而保证可靠性。
有个细节: