問題の背景 業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来たので、サーバにログインして、より大きなログファイルを探して全て削除しました(ここに落とし穴がありました)。ディスク容量は多少は解放されましたが、その時の私の不注意で、見つけて削除したファイルの容量が完全に解放されたか確認していませんでした。数日後、サーバーに再び警告が出ました。ログがなぜこんなに早く大きくなったのか不思議に思いました。調査した結果、最後のファイル削除操作後に大きなファイル領域が解放されなかったことが原因であることがわかりました。 問題の修復と解決 多くのスペースを占めるデータファイルを見つける #ディスク容量の使用状況を確認する $ df -h #まず、/tmp ディレクトリ内で大きなスペースを占めるファイルを照会します $ du -sh /tmp/*|sort -nr|head -3 #/homeディレクトリ内で大量のスペースを占めているファイルを照会する $ du -sh /home/*|sort -nr|head -3 # ファイルを見つけたら削除します。削除後、df -h を使用して、ファイルが解放されたかどうかを確認します。 ファイルを検索するときに、/tmp/* ディレクトリ内のファイルが最初に検索される理由を説明します。 Linux システムの削除ポリシー: Linux にはごみ箱機能がないため、サービスはまず削除するファイルをシステムの /tmp ディレクトリに移動し、その後 /tmp ディレクトリ内のデータを定期的に消去します。 多くのサーバーでは、システムのインストール時に /tmp 用の個別のパーティションがないため、/tmp ディレクトリ内のデータがスペースの大部分を占めている可能性があります。まず、/tmp ディレクトリ内のファイルをクリアして、スペースを解放することができます。 /home ディレクトリスペース内の dubbo サービス ログ ファイルを削除すると、スペースを解放せずにファイルを削除するという問題が発生しました。 ファイルを削除してもスペースは解放されない 通常、ファイルを削除した後にスペースが解放されない状況は発生しません。ただし、ファイルがプロセスによってロックされている場合や、プロセスがファイルにデータを書き込み続けている場合は、発生する可能性があります。 Linux でのファイルの保存メカニズムと保存構造を理解していれば、この問題も理解できるでしょう。 Linux システム内のファイルは、ポインター部分とデータ部分の 2 つの部分に分かれています。
dubbo ログ ファイルを削除してもスペースが解放されない理由は、dubbo プロセスがまだこのファイルにデータを書き込んでいるからです。ファイルが削除されても、ポインタはメタデータからクリアされないため、ログ ファイルは依然としてスペースを占有します。 そのようなファイルを見つける方法 lsof コマンドを使用すると、削除されたがまだプログラムによって占有されているファイルのリストを取得できます。 lsof | grep 削除 このスペースを解放する方法 この種の問題を解決してスペースを解放する方法は多数あります。占有されているプロセスを再起動したり、オペレーティング システムを再起動したり、コマンドを使用したりします。最初の 2 つの方法は非本番環境では最も便利ですが、本番環境では、実際には非常に単純なコマンドを使用してみてください。 エコー " " >/home/dubbo/log/xxx.log この方法では、プロセスの継続的な実行に影響を与えることなく、占有されているディスク領域が解放されます。 これで、Linux でファイルを削除したが、空き領域が残っている問題の対処法に関する記事は終了です。空き領域がない Linux のファイル削除の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: 絵文字と問題解決のためのMySQL/Javaサーバーサポートの詳細な説明
目次1. はじめに2. 自己増分ストレージの説明3つの自己付加価値修正メカニズム4. 自己評価を修正...
SQL 左結合、右結合、内部結合、自然結合 さまざまな結合の概要SQL には、左結合、右結合、内部結...
導入HTML は、Web ドキュメントのコンテンツのコンテキスト構造と意味を提供します。HTML 自...
1 公式サイトからMySQL8をダウンロードしてインストールするMySQL8 ダウンロードアドレスこ...
開発の背景:最近、私はバッチ データを MySQL データベースにインポートする機能に取り組んでいま...
console.log( [] == ![] ) // 真 console.log( {} == ...
1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...
目次序文エラーオブジェクト投げる試して…捕まえて…最後に最終ルールトライ/キャッチパフォーマンスウィ...
いくつかの理由(好奇心も含む)から、数週間前に Linux デスクトップとして Xfce を使い始め...
序文文字セットは、一連のシンボルとエンコード規則です。Oracle データベースでも MySQL デ...
まず、MySQL のバージョンについて説明します。 mysql> バージョンを選択します();...
この記事では、MySQL 5.7.18のグリーンバージョンをダウンロードしてインストールする詳細な手...
アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...
OSS を使用して Vue プロジェクトに画像や添付ファイルをアップロードするここでは、写真のアップ...
この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...