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

java 软件运维面试题_运维面试题(一)一基础知识1什么是linux的daemon进程?和一般进程有什么区别?daemon进程又称为守护进程,是在系统启动就运行,系统关闭才停止的进程,独立于终端之外,不与客户端交互。一般进程在关闭终端后就停止了,而daemon进程不会停止。2通过free命令查看内存是,看到的buffer和cache各表示什么含义?Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲…

大家好,又见面了,我是你们的朋友全栈君。

一 基础知识

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超时。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133203.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号