1、运维工作中自己做的遇到的、感觉有深度、对自己提升最大的项目有哪些?
这个问题就是考察自己在工作中遇到的一些问题的总结,说的明白一点就是工作经验,有一点就是要表现出自己的优势
2、参数在配置的时候,如何做合理配置?
这里考查的是我的tomcat服务器的内存溢出问题中的参数是根据什么来配置的,这里我们的永久内存是根据物理内存来设置的,默认是物理内存的1/64,设置时不能超过物理内存。
3、设置参数超过了物理内存后有什么后果?
当应用程序需要的内存超出堆的最大值时服务器就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%
4、一个进程启动后,它的操作内存空间是多大的?(这个问题没遇到过,找的答案)
LINUX下的进程可寻址空间同样为4G(在32位机器上),共享内存的机制就是两个进程(也可以更多)的共享部分的逻辑地址所指向的物理页面相同,也就是说共享一段内存时,唯一的开销就是页表,当然,它的虚拟逻辑地址是要占位的,也就是你所说的要记在这段4G的范围内
5、进程和线程的区别
进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行)
6、僵尸进程和孤儿进程
子进程先于父进程退出后,子进程的PCB需要其父进程释放,但是父进程并没有释放子进程的PCB,这样的子进程就称为僵尸进程,僵尸进程实际上是一个已经死掉的进程。将它挂在后台执行,可以看到结果,用ps可以看到子进程后有一个<defunct> ,defunct是已死的,僵尸的意思,可以看出这时的子进程已经是一个僵尸进程了。因为子进程已经结束,而其父进程并未释放其PCB,所以产生了这个僵尸进程。
一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。子进程死亡需要父进程来处理,那么意味着正常的进程应该是子进程先于父进程死亡。当父进程先于子进程死亡时,子进程死亡时没父进程处理,这个死亡的子进程就是孤儿进程。
7、进程间的通信方式 (这个问题需要深究)
管道、消息队列、共享内存、信号量、socket、信号、文件锁
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。
8、查找目录下五天前的文件
find . -name "*.sh" -mtime -5
9、查看进程信息
ps -l 列出与本次登录有关的进程信息;
ps -aux 查询内存中进程信息;
ps -aux | grep *** 查询***进程的详细信息;
top 查看内存中进程的动态信息;
10、查看CPU使用率
top命令可以看到总体的系统运行状态和cpu的使用率
sar 例如每1秒采集一次CPU使用率,共采集5次。sar -u 1 5
如果需要查看某颗cpu的使用可以用-P参数。例如指定显示0号cpu 的使用情况。 sar -P 0 -u 1 5
mpstat 每1秒收集一次,共5次。mpstat 1 5
11、top命令中load average的含义(这个问题需要深究)
top命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载
12、CPU的内核态和用户态 (这个问题需要深究)
内核态:
1.系统中既有操作系统的程序,也有普通用户程序。为了安全性和稳定性,操作系统的程序不能随便访问,这就是内核态。即需要执行操作系统的程序就必须转换到内核态才能执行
2. 内核态可以使用计算机所有的硬件资源
用户态:不能直接使用系统资源,也不能改变CPU的工作状态,并且只能访问这个用户程序自己的存储空间
13、查看磁盘使用率(某一个目录)
du -sh 目录
14、端口被占用怎么解决
输入你想要查的正在占用的端口号,netstat -ano|findstr 8080 (Windows命令),此时会显示端口8080对应的tcp号,终止了8080端口的运行进程,就可以运行了。
15、软硬链接区别
软链接可以理解成快捷方式。它和windows下的快捷方式的作用是一样的。
硬链接等于cp -p 加 同步更新。
16、删除原文件后软硬链接有什么区别
硬链接没有丝毫地影响,因为它 inode 所指向的区块由于有一个硬链接在指向它,所以这个区块仍然有效,并且可以访问到。
然而软链接的 inode 所指向的内容实际上是保存了一个绝对路径,当用户访问这个文件时,系统会自动将其替换成其所指的文件路径,然而这个文件已经被删除了,所以自然就会显示无法找到该文件了。
17、shell中单引号、双引号、反引号的区别
单引号:不管单引号里面有什么都原样输出,无视一切变量,所见即所得
双引号:内容中有变量、特殊转义符等,会先把变量、转义字符解析出结果,然后再输出最终内容。
反引号:用于命令引用,命令的执行。
18、DNS解析过程
递归查询
- 浏览器查询缓存,是否有百度的ip,如果有结束
- hosts文件中是否有百度的ip地址,如果有结束
- 如果本地DNS有百度的ip地址,如果有,本地DNS将其返回给请求主机,然后结束
- 根服务器根据
com
后缀,将请求转发给顶级域名服务器 - 顶级域名服务器查询自己的权威DNS服务器
- 权威DNS域名服务器查询到百度的IP,将结果返回给顶级,顶级返回给根,根返回给本地,本地返回给请求主机,结束。
迭代查询
- 浏览器查询缓存,是否有百度的ip,如果有结束
- hosts文件中是否有百度的ip地址,如果有结束
- 如果本地DNS有百度的ip地址,如果有,本地DNS将其返回给请求主机,然后结束
(前三步不变) - 根服务器根据
com
后缀,将顶级服务器IP告诉给本地服务器 - 本地服务器访问顶级DNS,顶级DNS将权威DNS返回给本地
- 本地服务器访问权威DNS,权威DNS将百度IP返回给本地
- 本地将百度IP返回给请求主机
1) TCP提供面向连接的传输,通信前要先建立连接(三次握手机制); UDP提供无连接的传输,通信前不需要建立连接。
2) TCP提供可靠的传输(有序,无差错,不丢失,不重复); UDP提供不可靠的传输。
3) TCP面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组; UDP是面向数据报的传输,没有分组开销。
4) TCP提供拥塞控制和流量控制机制; UDP不提供拥塞控制和流量控制机制。
20、为什么是四次挥手?
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。
TCP的连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。
21、time_waite状态
等待足够的时间以确保远程TCP接收到连接中断请求的确认;
22、OSI七层及所对应的协议
应用层 特定应用对接收数据的处理 HTTP、FTP、SMTP
表示层 设备数据格式与网络标准数据格式转换 LPP、GIF、JPEG
会话层 通信管理,建立和断开通信连接 RPC、SSL、TLS
传输层 管理两个网络终端之间的数据传输 TCP、UDP
网络层 网络地址管理和路由选择 IP/IPv6、ICMP
数据链路层 互联设备之间传送和识别数据帧 ARP、PARP
物理层 比特流与电子信号之间的转换 IEEE 802.3/802.2
23、常见的负载均衡策略
轮询、加权轮询、hash算法、随机random、最小连接数、加权最小连接数
24、http状态码
1开头:信息状态码
2开头:成功状态码
3开头:重定向状态码
4开头:客户端错误状态码
5开头:服务端错误状态码
25、shell截取日志文件中的IP,并统计,截取出次数最多的
当前WEB服务器中联接次数最多的ip地址
netstat -ntu |awk '{print $5}' |sort | uniq -c| sort -nr