################## Python语法基础 #######################
Linux操作系统
操作系统,可以直接认为是linux,毕竟搞后端的多数是和linux打交道。
1. tcp/udp的区别?tcp粘包是怎么回事,如何处理?udp有粘包吗?
TCP/UDP, 可靠与非可靠;三次握手,四次挥手;滑动窗口,拥塞控制;
TCP粘包: http://blog.chinaunix.net/uid-429659-id-5207848.html
2. time_wait是什么情况?出现过多的close_wait可能是什么原因?
参考资料:
http://blog.csdn.net/yusiguyuan/article/details/21445883
http://www.cnblogs.com/Jessy/p/3535612.html
CLOSE_WAIT
发起TCP连接关闭的一方称为client,被动关闭的一方称为server。被动关闭的server收到FIN后,
但未发出ACK的TCP状态是CLOSE_WAIT。出现这种状况一般都是由于server端代码的问题,
如果你的服务器上出现大量CLOSE_WAIT,应该要考虑检查代码。
TIME_WAIT
根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态。
TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒。
TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,
如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket,
甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务。
3.epoll,select的区别?边缘触发,水平触发区别?
select,poll,epoll都是IO多路复用的机制。
I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行
相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个
读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。
水平触发(level-triggered,也被称为条件触发)LT: 只要满足条件,就触发一个事件(只要有数据没有被获取,内核就不断通知你)。select属于条件触发。
边缘触发(edge-triggered)ET: 每当状态变化时,触发一个事件。
Linux部分
讲一下你常用的Linux/git命令和作用;
查看当前进程是用什么命令,除了文件相关的操作外,你平时还有什么操作命令;
(因为我本人Linux本身就很水,只会基本的操作,所以这部分面试官也基本没怎么问。。反正问了就大眼瞪小眼呗)
列举熟悉的的Linux命令。
1. mkdir –p 创建多级目录
2. ls -l 显示详细信息
3. cd change directory 进入到目录中
4. pwd print working directory 显示当前所在位置
5. touch 创建文件 修改文件的时间戳
6. vi 编辑文件
7. cat 显示文件内容
8. cp copy 复制
9. mv move 移动
10. rm 删除文件或目录 -f 强制删除不提示 -r 递归删除目录 慎用
11. find 查找 -type f(file) d(dir) -name 名字
12. grep 过滤 -v 排除
13. head 显示文件的前几行 默认显示文件的前10行 -n2 === -2 显示文件的前2行
14. tail 显示文件的最后几行 默认显示文件的后10行
-n1 === -1 显示文件的最后1行
-f 实时显示文件的更新
15. sed 取行
-n 取消默认输出
-i 修改文件的内容
16. tar 创建解压查看压缩包
17. yum install yum install -y
18. ping baidu.com
145. 公司线上服务器是什么系统?
Linux/Centos
146. 解释 PV、UV 的含义?
PV访问量(Page View),即页面访问量,每打开一次页面PV计数+1,刷新页面也是。
IP访问数指独立IP访问数,计算是以一个独立的IP在一个计算时段内访问网站计算为1次IP访问数。在同一个计算时段内不管这个IP访问多少次均计算为1次。计算时段有以1天为一个计算时段,也有以1个小时为一个计算时段。
UV访问数(Unique Visitor)指独立访客访问数,一台电脑终端为一个访客。
在同一个局域网中对互联网访问时对外通常是同一个IP,如果该局域网中有10台终端在同一个计算时段内访问同一个网站,对该网站的独立IP访问数贡献为1,而不是10。而此时UV访问数则为10。
147. 解释 QPS的含义?
Query Per Second
每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
148. uwsgi和wsgi的区别?
WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI协议之上的web框架有Bottle, Flask, Django。
uwsgi:与WSGI一样是一种通信协议,是uWSGI服务器的独占协议,用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型的描述,与WSGI协议是两种东西,据说该协议是fcgi协议的10倍快。
uWSGI:是一个web服务器,实现了WSGI协议、uwsgi协议、http协议等。
https://www.jianshu.com/p/679dee0a4193
149. supervisor的作用?
supervisor管理进程,是通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,所以我们只需要将要管理进程的可执行文件的路径添加到supervisor的配置文件中就好了。此时被管理进程被视为supervisor的子进程,若该子进程异常终端,则父进程可以准确的获取子进程异常终端的信息,通过在配置文件中设置autostart=ture,可以实现对异常中断的子进程的自动重启。
150. 什么是反向代理?
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
151. 简述SSH的整个过程。
SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
https://www.jianshu.com/p/33461b619d53
原文地址:https://www.cnblogs.com/andy0816/p/12228518.html