Linux デバイスに空き容量がありません inode の満杯により 500 エラーが発生します

Linux デバイスに空き容量がありません inode の満杯により 500 エラーが発生します

iノードとは何ですか?

inode を理解するには、まずファイル ストレージから始める必要があります。

ファイルはハードディスクに保存され、ハードディスクの最小の保存単位は「セクター」と呼ばれます。各セクターには 512 バイト (0.5 KB に相当) が格納されます。

オペレーティング システムがハード ディスクを読み取るとき、セクターごとに読み取るのではなく (これは非常に非効率的です)、一度に複数のセクターを連続して読み取ります。つまり、一度に 1 つの「ブロック」を読み取ります。 <br>複数のセクターで構成されるこの「ブロック」は、ファイル アクセスの最小単位です。最も一般的な「ブロック」サイズは 4KB です。つまり、8 つの連続したセクターがブロックを形成します。

ファイル データは「ブロック」に保存されるため、ファイルの作成者、ファイルの作成日、ファイルのサイズなどのファイルのメタデータを保存する場所も見つける必要があります。 <br>ファイルのメタデータを保存するこの領域は、inode と呼ばれ、中国語では「インデックス ノード」と翻訳されます。

最近、ウェブサイトの編集者から、写真のアップロードが失敗し、ウェブサイトのページに 500 エラーが頻繁に発生すると報告されました。

一般的な 500 エラーについては、https://www.jb51.net/article/175431.htm を検索し、構成が正常であることがわかりました。

nginxのエラーログを確認すると、ディスク容量がいっぱいであることがわかりました

df -h コマンドでディスク使用量を確認したところ、まだいくらか空き容量があることがわかりました。

問題が見つかりました:その後、df -i を使用してインデックス ノード (inode) をチェックしたところ、インデックス ノードがいっぱい (IUsed=100%) であることがわかりました。そのため、システムは新しいディレクトリとファイルを作成できませんでした。

解決策:不要な一時ファイルを削除し、i ノードを解放します。

/tmp ディレクトリに多くの一時ファイルがあることがわかります。

/var/spool/ディレクトリを選択することもできます

/var/spool/ の下にあるファイルの数を表示するには、次のコマンドを入力します。

/var/spool/ の i に対して、 echo $i を実行します。 $i を検索します |wc -l|sort -nr; 完了

200万以上のファイルがあることがわかります

cd /var/spool/clientmqueue/このディレクトリに入り、これらの無駄なファイルを削除し、チェックすると、600,000個のファイルがあり、ファイルが多すぎます。

そこで私は次のコマンドを使用しました:

ls | xargs rm -rf

2またはこのコマンド

検索 . -name "*" | xargs rm -rf

ファイルはバッチで削除できます。次の図は削除後の効果を示しています。inode の使用率は 21% です。大丈夫

ジャンク ファイルが長期間クリーンアップされていないため、ファイルのクリーンアップに時間がかかりすぎます。このような問題を回避するには、システムのジャンク ファイルを定期的にクリーンアップするか、監視システムを導入するのが最善です。

大きいディレクトリのファイル占有率に基づいて、一部のファイルを、より少ないディスク領域を占めるディレクトリに一時的に転送できます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux インデックスノード inode の詳細な説明
  • Linux ネットワーク設定の詳細
  • MyCat を使用して Linux で MySQL マスター/スレーブの読み取り/書き込み分離を実装する方法
  • Unix/Linuxフォークの隠れたオーバーヘッド
  • Linux での UDP について学ぶ
  • Linux スワップ パーティション (詳細説明)
  • Linux での C++ ネットワーク プログラミング、epoll テクノロジ、Windows での IOCP モデル
  • Linux サーバーは最大いくつのポートを開くことができますか?
  • Linux ファイル記述子、ファイルポインタ、および inode の詳細

<<:  ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

>>:  MySQLでよく使われる4つのストレージエンジンについて簡単に説明します。

推薦する

mysql5.7.18のインストールと初期パスワードの変更方法

CentosでのMySQLのインストールについては、以前の記事を参照してください。 Centos7....

MySQL ベストプラクティス: パーティションテーブルの基本タイプ

MySQL パーティションテーブルの概要MySQL の人気が高まるにつれて、MySQL に保存される...

パゴダパネルとドッカーを使用して Gogs をインストールするプロセス全体

目次1 Baota Software StoreにDockerをインストールする2 ゴグスイメージを...

一般的なメールボックスで正常に表示できる HTML メールを作成するためのヒント

HTML メールを送信するためのヒント: スタイルを使用してインライン CSS を記述する、使用する...

Pure CSS3はdivの出入りを順番に実現します

この記事は主に、純粋な CSS3 を使用して div が順番に出入りする効果を紹介します。一定の参考...

VUE uni-app でよく使用される API についての簡単な説明

目次1. ルーティングとページジャンプ2. インターフェース要約する1. ルーティングとページジャン...

Vueはソースコード付きのリファレンスライブラリのメソッドを使用します

monaco-editor-vueの公式ソースコードは次のとおりです。インデックス 'mon...

Unix/Linux システムにおける nobody ユーザーと nologin の詳細な紹介

Unix/Linux システムの nobody ユーザーとは何ですか? 1. Windows システ...

MySQL 5.7.11 zip インストールと設定方法のグラフィックチュートリアル

1. MySQL 5.7.11 zipインストールパッケージをダウンロードするこのマシンはwin7 ...

Vue + Axios リクエストインターフェース方式とパラメータ渡し方式の詳しい説明

目次1. リクエストを取得する: 2. 投稿リクエスト: 3. 拡張と補足Vue スキャフォールディ...

ホワイトボードを踏まないようにするゲームを実装するための HTML+CSS+JS

目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...

JavaScript データのフラット化の詳細な説明

目次フラット化とは何か再帰トストリング減らすアンダーコア_.平坦化_。連合_。違い要約するフラット化...

数千万件のレコードをMySQLに素早く挿入する方法に関する実践的なチュートリアル

1. データベースを作成する 2. テーブルを作成する1. deptテーブルを作成する テーブル「d...

Vue で親子コンポーネントの値を双方向バインドするために v-model を使用するときに発生する問題と解決策

目次シナリオ解決してみる解決するシナリオ今日、コンポーネントの双方向データバインディングにv-mod...

Vmware + Ubuntu18.04 に Hbase 2.3.5 をインストールするための詳細なチュートリアル

序文前回の記事では Hadoop をインストールしましたが、今回は Hbase をインストールします...