/tmp临时文件占用率100%的排查过程
1.获取有哪些文件句柄未释放lsof L1 | grep /tmp | morels -l /proc/13164/fd | grep (deleted) | more watch -n 1 ls /proc/13164/fd | wc -l2. 存在上传文件未关闭流2.1 java代码层面确保上传用的临时文件流始终在 finally 块中关闭或使用 try-with-resources操作完成后主动删除临时文件2.2 临时手动清理#!/bin/bash # 清理 Tomcat 进程已删除的上传临时文件句柄 PID$(pgrep -f 服务名 | head -1) if [ -n $PID ]; then for fd in /proc/$PID/fd/*; do link$(readlink $fd 2/dev/null) if [[ $link ~ upload.*tmp.*\(deleted\) ]]; then $fd 2/dev/null echo $(date) truncated $fd fi done fi2.判断是否连接泄露lsof -p 13164 -i | wc -l ss -tanp | grep pid13164 | awk {print $1, $5} | sort | uniq -c | sort -rn检查是否有 CLOSE_WAIT 等半关闭状态。如果出现大量 CLOSE_WAIT说明对方已关闭连接但你的进程没有调用 close()这是严重的泄露。你目前只看到 ESTAB说明连接池有较多连接可排查连接池的连接状态idle或者idle in transaction注意根据实际情况判断应用连接池容量是否合适