面试常问
PV于UV的区别
UV: 访问网站的一台电脑客户端为一个访客,一天内同一客户端访问多次只被计算一次
PV: 每个网页的每一次访问被记录为一个PV
1.mysql主从同步延迟怎么解决?
2.如何查看网络?
5.http和https的区别?优缺点?
6.tsl和ssl的区别?在那层?
7.NFS的特点
8.raid磁盘阵列?
9.怎么解决k8s的网络通信问题?
10.rabbitmq的特点?
11.rabbitmq的消峰?
3.在三次握手中出现大量time_wait状态,并发量高才会出现,如何解决?
4.如果web页面访问慢怎么办?如何解决?
如果web页面访问慢怎么办?如何解决?
带宽不足,
首先想到的就是自己网速的问题,但是一般网速在1M以上的,打开网页一般不会是很慢的。
网站服务器的带宽不够的话,当大量用户访问的时候,网页的加载也是很慢的,这就是网络的出口端和入口端两个方面
硬件配置低,
服务器端的配置
CPU或者是内存被占满的时候
DNS解析慢,
域名的解析是需要专门的域名解析服务器来完成的,DNS解析包括往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的总时间,在http请求的过程中,域名解析和建立连接占的时间很多。
JS阻塞请求,
写的js代码出现问题,解析就会花费很长时间,这两个js请求之间会出现一个很大的空隙,就会导致这段时间的资源加载都被阻塞住,
接受数据时间过长,
这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。
这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等手段来解决。
加载某个资源太慢
如果某个请求比其他的请求多出很多的时间,那么一般情况就是某个资源的加载太慢,导致了整个网页变慢,
原因有可能是1)资源在第三方站点上,他们很慢;2)这个资源太大了;3)这个资源使用的域名有问题
后端代码问题,
主要有代码冗余、数据库发生锁死、动态请求时间过长等,
前端页面请求的资源过多
网页本身中包含了追踪或者是分析用户的工具,从而导致网页的加载时间变的慢
在三次握手中出现大量time_wait状态,如何解决?
查看tcp连接状态
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
编辑文件/etc/sysctl.conf,加入以下内容:
net.ipv4.tcp_syncookies = 1 表示开启SYN cookies。
当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭
net.ipv4.tcp_tw_reuse = 1 表示开启重用。
允许将TIME-WAIT sockets重新用于新的TCP连接,
默认为0,表示关闭
net.ipv4.tcp_tw_recycle = 1
开启TCP连接中TIME-WAIT sockets的快速回收,
默认为0,表示关闭。
net.ipv4.tcp_fin_timeout =30
tcp_fin_timeout实为FIN_WAIT_2状态的时长,
然后执行 /sbin/sysctl -p
让参数生效。
关于修改
linux的tcp连接中的TIME_OUT时间
Linux默认的TIME_WAIT时长一般是60秒
Linux没有提供修改TIME_WAIT时长接口,但windows注册表(TcpTimedWaitDelay)可以修改
Syn Cookie
它的原理是,在TCP服务器接收到TCP SYN包并返回TCP SYN + ACK包时,不分配一个专门的数据区,被动端(TCP服务器)根据这个SYN包计算出一个cookie值
。这个cookie作为将要返回的SYN ACK包的初始序列号。
当客户端返回一个ACK包时,根据包头信息计算cookie,与返回的确认序列号(初始序列号 + 1)进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。
为什么有监控?
它能够让运维人员快速知晓系统的运行状况,
并在出现问题时甚至在出现问题前,
及时感知到问题的存在,
通过提前处理或实施预案,解决或避免问题的出现,并且尽快进行处理。
为什么使用zabbix?
zabbix
是C语言写的(4.4用go
重写),web界面是php写的
Zabbix
一个合格的监控系统需要提供一定的深度监控:可用性监控,性能监控,甚至是日志监控。
ZABBIX
可以通过JAVA GATEWAY
进行原生的应用级监控,包括JVM的状态,连接数等
。对于其他的中间件和数据库,也有相应的模版可供使用。
对于操作系统,ZABBIX官方也提供了一些模版,对常见的Windows,Linux等操作系统进行监控。其中也包含了很多如
磁盘IO的性能监控项
。
通过
SNMP
协议,ZABBIX
可以对交换机
和存储的性能
及可用性进行监控。
SNMP
是一种简单网络管理协议,它属于TCP/IP五层协议中的应用层协议
详细参考
image.pngZABBIX可以对底层的硬件进行监控,可以通过
IPMI
带外协议监控每个磁盘、每个内存、每个CPU的状态,甚至是某个风扇的转速。
开源性:源代码全公开,任何用户都可以编译和发布自己的版本。同时,ZABBIX社区中有大量的模版。
可扩展性:支持用户自定义监控项,只要能想得到的KPI,基本都能监控的到。
分布式
:
分布式架构,提供多分支组织的IT监控解决方案。同时,也一定程度上分散监控压力。
支持通过代理服务器zabbix proxy收集zabbix agent的数据,
然后把收集保存在本地数据库并发送给zabbix server进行统一存储和展示
为什么使用zabbix?总结
开源性:源代码全公开,任何用户都可以编译和发布自己的版本。
ZABBIX社区中有大量的模版。
zabbix的优化?
官网性能调优
如何做全链路监控?