iostat iotop などで io状態を確認する必要があった。 しかしながら、上記ソフトはデフォルトではインストールされていないため、あらかじめインストールする必要がありそう
今回は、バックアップジョブが 2分ごとという異常な回数で設定されていたため、刺さってしまっていた。 その結果、バックアップジョブ (vzdump) の異常終了 により /var/tmp/ に不要なデータが残った。 I/O 負荷 (rsync の D 状態) が継続 し、ストレージが詰まった。 一時ファイル (/var/tmp) を削除 することで、I/O 遅延が解消。
vzdump
/var/tmp/
iotop
rsync
D (Disk Sleep)
バックアップジョブ (vzdump) の異常終了
pct unlock
バックアップの一時ファイルが /var/tmp/ に大量に残存
vzdumptmpxxxxx_xxx
ストレージの I/O 遅延 (Disk Sleep 状態)
Disk Sleep
ps aux | grep vzdump
→ rsync プロセス (D 状態) が I/O を圧迫しているのを確認。
D
kill -9 <PID> <PID> <PID>
(PID は ps aux | grep vzdump の出力から取得)
PID
du -sh /var/tmp/
→ 14GB 以上のファイルが /var/tmp/ に残存。
rm -rf /var/tmp/vzdumptmp*
iotop -o
→ rsync の高負荷がなくなっていることを確認。
sync; echo 3 > /proc/sys/vm/drop_caches
→ メモリキャッシュをクリアし、I/O 負荷を軽減。
/etc/vzdump.conf
cat /etc/vzdump.conf
→ dumpdir が適切なストレージ (/var/tmp/ ではない場所) に設定されているか確認。
dumpdir
find /var/tmp -type f -mtime +1 -exec rm -f {} \;
→ 1日以上前の不要ファイルを削除。
iostat
✔ バックアップ設定の最適化
--mode=snapshot
--bwlimit
51200
✔ バックアップジョブ完了後の一時ファイル削除
✔ I/O 負荷の監視
✔ バックアップ保存先 (dumpdir) の適切な管理
/mnt/backups
💡 バックアップの異常終了が I/O 遅延を引き起こすことがあるため、 /var/tmp/ の管理とバックアップ設定の見直しが重要!
2025-02-18 Overdue
This issue currently doesn't have any dependencies.
Deleting a branch is permanent. It CANNOT be undone. Continue?
iostat
iotop などで io状態を確認する必要があった。
しかしながら、上記ソフトはデフォルトではインストールされていないため、あらかじめインストールする必要がありそう
今回は、バックアップジョブが 2分ごとという異常な回数で設定されていたため、刺さってしまっていた。
その結果、バックアップジョブ (vzdump) の異常終了 により /var/tmp/ に不要なデータが残った。
I/O 負荷 (rsync の D 状態) が継続 し、ストレージが詰まった。
一時ファイル (/var/tmp) を削除 することで、I/O 遅延が解消。
Proxmox におけるバックアップ後の I/O 遅延問題の原因と対処方法
📌 事象
vzdumpによるバックアップジョブが異常終了し、コンテナがロックされた。/var/tmp/に 14GB もの不要な一時ファイルが溜まり、I/O 負荷が異常に高くなった。iotopの確認でrsyncプロセスがD (Disk Sleep)状態で停滞し、I/O 遅延を引き起こしていた。🔍 原因
バックアップジョブ (
vzdump) の異常終了rsyncのプロセスがバックグラウンドで動き続け、I/O を圧迫。pct unlockでコンテナのロックは解除できたが、I/O 負荷が残った。バックアップの一時ファイルが
/var/tmp/に大量に残存/var/tmp/にvzdumptmpxxxxx_xxxという巨大な一時ファイルが 14GB 以上残り、ディスクI/Oが逼迫。ストレージの I/O 遅延 (
Disk Sleep状態)rsyncプロセスがディスクに書き込み続け、他の処理が遅延。🛠️ 対処方法
1️⃣
vzdumpのバックアップジョブを確認→
rsyncプロセス (D状態) が I/O を圧迫しているのを確認。2️⃣
vzdumpとrsyncのプロセスを強制終了(
PIDはps aux | grep vzdumpの出力から取得)3️⃣
/var/tmp/の不要ファイルを確認→ 14GB 以上のファイルが
/var/tmp/に残存。4️⃣
/var/tmp/の不要ファイルを削除5️⃣ I/O 負荷を確認
→
rsyncの高負荷がなくなっていることを確認。6️⃣ I/O キャッシュのクリア
→ メモリキャッシュをクリアし、I/O 負荷を軽減。
7️⃣ バックアップ設定の見直し (
/etc/vzdump.conf)→
dumpdirが適切なストレージ (/var/tmp/ではない場所) に設定されているか確認。8️⃣ 定期的な
/var/tmp/のクリーンアップを自動化→ 1日以上前の不要ファイルを削除。
✅ 結果
rm -rf /var/tmp/vzdumptmp*を実行したことで I/O 遅延が完全に解消!iotopやiostatの監視で I/O 状況をリアルタイムで把握可能に。🎯 今後の対策
✔ バックアップ設定の最適化
--mode=snapshotを利用 (ZFSなら特に有効)--bwlimitの値を適切に調整 (51200は低すぎる場合がある)✔ バックアップジョブ完了後の一時ファイル削除
/var/tmp/に不要なファイルが溜まらないよう、定期クリーンアップを実施。✔ I/O 負荷の監視
iotop,iostatを活用し、異常を早期発見。✔ バックアップ保存先 (
dumpdir) の適切な管理/var/tmp/ではなく、適切なストレージ (/mnt/backupsなど) を指定。📢 まとめ
💡 バックアップの異常終了が I/O 遅延を引き起こすことがあるため、
/var/tmp/の管理とバックアップ設定の見直しが重要!