有没有接触线下私有云 IDC,说了之前用的ECS 生产环境设备需要关注指标 磁盘容量方面 inode怎么查看 inode满了什么影响 TCP建立连接 重传机制 四、七层负载均衡 LVS NGINX 区别 性能差别 怎么查看服务器网络连接情况 上面都回答出来了 下面是回答的不太清楚的 查了资料 操作系统 average load https://blog.csdn.net/yiwenrong/article/details/107003779 https://zhuanlan.zhihu.com/p/75975041 time_wait连接状态多,什么原因,怎么解决 原因 1、在高并发的场景下,会出现大量的 TIME_WAIT 连接。 2、大量的短连接存在 我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。 解决 客户端,调整短链接为长链接,HTTP 请求的头部,connection 设置为 keep-alive,保持存活一段时间 服务器端允许 time_wait 状态的 socket 被重用缩减 time_wait 时间,设置为 1 MSL(即,2 mins) https://zhuanlan.zhihu.com/p/415307243 客户端向服务端发送syn包尝试建立连接,服务端发现该端口连接已经存在,回复客户端什么包 https://blog.csdn.net/qq_34827674/article/details/120513181 处于 establish 状态的服务端如果收到了客户端的 SYN 报文(注意此时的 SYN 报文其实是乱序的,因为 SYN 报文的初始化序列号其实是一个随机数),会回复一个携带了正确序列号和确认号的 ACK 报文,这个 ACK 被称之为 Challenge ACK。 接着,客户端收到这个 Challenge ACK,发现序列号并不是自己期望收到的,于是就会回 RST 报文,服务端收到后,就会释放掉该连接。 运行容器的服务器性能除了top free等命令,还有什么观察手段 这个没说清楚 docker容器挂了怎么查看问题 通过docker inspect查看container状态 可以用—restart参数指定当容器退出后的行为。当容器在重启时,docker ps可以看到处于Up或Restarting,也可以在docker events中看到相关信息。容器的退出状态就是执行命令的错误代码,Linux下一般用0表示正常,其他表示错误。此外,也可以通过docker logs查看容器退出前的日志来进行分析。 docker运行的服务器磁盘占用满了。怎么解决 Docker在不重建容器的情况下,日志文件默认会一直追加,时间一长会逐渐占满服务器的硬盘的空间,内存消耗也会一直增加。 docker logs -f container_name噼里啪啦一大堆很占用空间,致使磁盘空间被占满。 docker system df ----查看Docker占用分布 docker stats ---可以查看docker容器的内存占用 定时清理日志 logs=`find /var/lib/docker/containers/ -name *-json.log` cat /dev/null > $log #docker run时添加--log-opt max-size=500m --log-opt max-file=3参数,如创建并运行 docker run -name xxx -p 80:80 --log-opt max-size=500m --log-opt max-file=3 xxx:v1 通过配置容器docker-compose的max-size选项来实现 logging: driver: "json-file" options: max-size: "500m" # 日志文件大小 max-file: "6" # 日志的数量 问了接触过哪些中间件 MQ 卡夫卡, 不了解,说的接触过redis redis从服务器数据异常,并且应用正在读取从服务器,主从不一致怎么解决 因为主从库间的命令复制是异步进行的,所以有可能客户端从从库中读取到的值和主库中的最新值并不一致。 具体来说,在主从库命令传播阶段,主库收到新的写命令后,会发送给从库。但是,主库并不会等到从库实际执行完命令后,再把结果返回给客户端,而是主库自己在本地执行完命令后,就会向客户端返回结果了。如果从库还没有执行主库同步过来的命令,主从库间的数据就不一致了。 https://blog.csdn.net/ggh0314/article/details/117782124 https://segmentfault.com/a/1190000013144617 主从复制也会出现过期时间不一致问题 主要是由于在主从进行全同步期间,如果主库此时有expire 命令,那么到从库中,该命令将会被延迟执行。因为全同步需要耗费时间,数据量越大,那么过期时间差距就越大。 expire 转成expireat命令 Redis key 迁移前后数量不一致问题 redis在做主从复制的时候,会对当前的存量数据做一个RDB快照(bgsave命令),然后将RDB快照传给从库,从库会解析RDB文件并且load到内存中。然儿在上述的两个步骤中Redis会忽略过期的key 做bgsave的时候不忽略过期的key 做bgrewirteaof 的时候不忽略过期的key 在load rdb 的时候不忽略过期key