java 软件运维面试题_运维面试题(一)

本文主要涵盖了Java软件运维的基础知识,包括Linux daemon进程、内存管理、文件操作的影响,以及apache与nginx的区别。同时,详细解释了TCP的三次握手过程和HTTP的keep-alive机制及其应用场景。
部署运行你感兴趣的模型镜像

一 基础知识

1 什么是linux的daemon进程?和一般进程有什么区别?

daemon进程又称为守护 进程,是在系统 启动就运行,系统关闭才停止的进程,独立于终端之外,不与客户端交互。一般进程在关闭终端后就停止了,而daemon进程不会停止。

2 通过free命令查看内存是,看到的buffer和cache各表示什么含义?

Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽了。极大缓和了冲击。

Cache的核心作用是加快取用的速度。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。

3 使用ln -s 和mv 对某一个文件做如下操作时(bashln -s /usr/afile /etc/bfile bashln−s/usr/afile/etc/bfile bash mv /etc/afile /etc/bfile )对inode和block有哪些影响?

[https://www.cnblogs.com/tanshengjiang/p/12153481.html]()

4 apache和nginx这两个web服务器有哪些区别?

[http://www.360doc.com/content/18/0816/00/11935121_778595313.shtml]()

5 请例句你使用过的集群软件?

k8s集群

mariaDB主从

squid主备

es集群

二 网络技术

1 描述TCP三次握手的过程

822868d8e13a2e8f45d53f8f1819083f.png

​三次握手:

第一次

第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇(自导自演)

情景案例

client:你能听到我说话吗(SYN J)

server:我可以听到,你能听到吗(SYN K ACK J+1)

client:我听得到,来吧开始聊天(ACK K+1)

四次挥手:

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

(1) TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。

(2) 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3) 服务器关闭客户端的连接,发送一个FIN给客户端。

(4) 客户端发回ACK报文确认,并将确认序号设置为收到序号加1。

👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇👇(自导自演)

情景案例

client------server连接中,巴拉巴拉

client:我问好了,挂了吧(FIN M)

server:等会挂,我还没说完( ACK M+1)

server:巴拉巴拉,好的我说完了( FIN N)

client:Ok挂了(ACK N+1)

2 请说明一下http协议中的keeplive是做什么的?它的适应场景是什么?

1.Http底层也是通过TCP传输的。

2.HTTP keep-alive

Http是一个”请求-响应”协议,它的keep-alive主要是为了让多个http请求共享一个Tcp连接,以避免每个Http又新建一个TCP连接。每个Http服务器默认的keep-alive时间可能是不一样的。

3.直接介绍一个场景就可能更容易明白了。客户端发送了一个Http请求,服务器响应后,判断这个Http是否是keep-alive模式的,如果不是则关闭连接,如果是keep-alive,则等待keep-alive time后再关闭,如果这期间再收到一个http 请求,则继续等待最后一个请求的keep-alive time时间,直到keep-alive time时间内没有收到请求,则关闭。

4.上面是HTTP keep-alive的,而TCP是它下一层的协议,本身TCP是长连接的,除非主动关闭。HTTP的keep-alive time一般是15ms, 30ms之类的,如果是超过了HTTP的keep-alive time时间,则HTTP会关闭TCP连接。本身TCP是不会关闭连接的,TCP的keep alive是TCP的保鲜装置,在keep alive timeout 后服务端发送一个监测包来判断连接是否仍保持着,如果还是可连接,则继续保持,它不会主动关闭连接的。而心跳包是为了防止NAT超时。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值