标签墙

Linux

MySQL 自动备份 Shell 脚本

可以选择设置需要备份的库,自动备份压缩,自动删除 7 天前的备份,需要使用 crontab 定时执行。

More...

自动清理日志 Shell 脚本

  ,

以删除 Jetty 日志为例,仅保留最近 7 天的日志文件。

More...

系统健康状态管理设计思路

系统健康状态管理设计思路。

More...

Linux 内核网络参数

  ,

Linux 系统调优时需要进行关注的内核网络参数。

More...

使用 Golang 操作 Linux Namespaces

Linux Namespaces(Linux 命名空间)机制提供了进程使用操作系统资源时的隔离方式,是基于内核实现轻量级虚拟化(容器化,例如 docker)的实现基础。

具体来说就是当我们创建一个进程时,可以给进程设置 flag 组合来构建进程的命名空间,处于不同命名空间的进程是相互隔离的。

More...

CLOSE_WAIT 问题分析

问题场景 服务器出现大量 TCP 连接状态为 CLOSE_WAIT,将系统资源耗尽,导致业务处理失败。 ## 处理方式 重启导致问题的进程,释放 TCP 连接后服务恢复正常。 调整服务器网络参数: * net.ipv4.tcp_keepalive_time=600,tcp 连接空闲 10 分钟后发送探测包,默认是 7200 秒(两小时) * net.ipv4.tcp_keepalive_intvl=15,每次探测包间隔 15 秒,默认是 75 秒 * net.ipv4.tcp_keepalive_probes=5,一共发送 5 次探测包,默认是 9 次 让内核尽快检测出空闲连接并释放。 ## 分析 服务器环境是 Java、Tomcat。服务端在收到客户端 FIN 包后进入 CLOSE_WAIT,但服务端没有发送 FIN 包,具体原因没有查明。猜测的原因是 * 服务端的业务处理阻塞,导致发送不了 FIN 包 * 网络问题导致依赖的基础库 bug 附:TCP 连接状态图 ![8b538e707e964084a2161844efb023ea-tcp.jp....

More...