1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Disk使用率アラートが頻発する理由とその対処法

1
Posted at

【インフラ監視Tips】Disk使用率アラートが頻発する理由とその対処法

日々のインフラ運用で最もよく見かけるアラートの一つが、Disk使用率の閾値超過アラートです。
「またか……」と思いつつも、対応を誤るとシステム停止にもつながる重要な指標です。

本記事では、なぜこのアラートが頻発するのか、そして現場で実践できる対応策をまとめました。


🔍 よくあるDisk使用率アラートの実例

[EC2] ディスク使用率 WARN
system.disk.in_use was >= 0.9 on average during the last 5m
対象: /dev/nvme0n1p1 使用率: 99.8%

調査すると、df -h の結果はこう:

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1  8.0G  7.7G  312M  97% /

なぜDiskアラートはこんなに頻繁に出るのか?

原因 詳細
ルートパーティションが小さい AWSのデフォルト構成では8GBしかないケースも
ログやキャッシュの蓄積 /var/log, journal, pip cache, 一時ファイル など
PythonなどのMWやアプリのアップデート バージョン間でファイルが残りやすく、二重管理に
仮想環境やビルドキャッシュ venv, node_modules, dist/ のような一時的ファイル群
アラート閾値が厳しすぎる 90%超でWARNにすると“通常動作”でも引っかかる

実際の原因はPythonだけじゃなくて。。。

🔧 開発環境/言語系ツールによる要因

項目 内容
Python venv複数作成、pyenvによるバージョン重複、pipキャッシュ
Node.js node_modules の爆発的肥大化(特にフルスタック系)
Java / Maven .m2/repository に大量の依存JARが残存
Go go mod cachevendor ディレクトリの肥大
Rust / Cargo .cargo/registry, target/ フォルダの肥大

🗃 ログ・キャッシュ・監視エージェントによる要因

項目 内容
/var/log の肥大化 OSログ、アプリログ、cronログ、access.log等
journalctl systemdによるログが最大数・最大容量に達するまで無制限に蓄積
auditd セキュリティ監査ログが高頻度に出力される
Datadog/CloudWatch Agent 出力ファイルのバッファやトレースログが溜まり続けるケース

🧪 CI/CD・ビルド関連

項目 内容
Jenkins/CIランナー /var/lib/jenkins/workspace にビルドアーティファクトが蓄積
Docker 未使用イメージ・中断されたbuildでディスク圧迫(docker system prune で解消)
/tmp にビルド展開 MakefileやCIパイプラインが一時的に膨大なファイルを生成するケース

🗑 不要なファイル/人為的な操作ミス

項目 内容
SCP/FTPで送った一時ファイル /home/ec2-user//root/ にzip/tarが残っている
スナップショット取得用スクリプト等の一時バックアップ /backup に古いtar.gzが放置されているケースも
ダンプファイル DBバックアップやログ吐き出し(mysqldump, pg_dump)などの出力残り

よく使うディスク調査コマンド

# ルート直下のディレクトリごとの容量確認
sudo du -sh /* | sort -hr | head -n 10

# ログディレクトリの中身で大きいものを特定
sudo du -sh /var/log/* | sort -hr | head -n 10

# journalログの使用量
sudo journalctl --disk-usage

✅ 現場での対応方針まとめ

1. アラート閾値の見直し

  • WARN: 90% → 92% に緩和
  • CRITICAL: 95%以上

2. ログや一時ファイルのクリーンアップ

# 古いログファイルを削除(7日以上)
find /var/log -type f -name "*.log" -mtime +7 -exec rm -f {} \;

# journalログを7日で削除
journalctl --vacuum-time=7d

3. 空いている永続領域(/mnt など)へ移動

# 例: /var/log を /mnt/ebs に退避
sudo mv /var/log /mnt/ebs/var_log
sudo ln -s /mnt/ebs/var_log /var/log

4. ルートボリュームの拡張(EBSの場合)

# growpart + resize2fs(Amazon Linux)
sudo growpart /dev/nvme0n1 1
sudo resize2fs /dev/nvme0n1p1

📌 まとめ

Disk使用率アラートは、
「ただのノイズ」になりがちですが、
適切に管理しなければクリティカルな障害の入り口です。

  • しきい値の調整
  • クリーンアップ手順の自動化
  • ボリューム設計の見直し

を通じて、“鳴らないけど意味ある監視”に育てていきましょう。


🗒 参考


👨‍💻 著者

檜垣 慶太

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?