Linux で開いているファイルが多すぎる問題を解決する方法

Linux で開いているファイルが多すぎる問題を解決する方法

原因は、プロセスが特定の時点でシステム制限を超える数のファイルと通信リンクを開くことです。 システムによって現在設定されているハンドルの最大数を表示するには、コマンド ulimit -a を使用できます。

コアファイルサイズ (ブロック、-c) 0

データセグメントサイズ (キロバイト、-d) 無制限

スケジュール優先度 (-e) 0

ファイルサイズ(ブロック、-f)無制限

保留中のシグナル (-i) 31767

最大ロックメモリ (キロバイト、-l) 64

最大メモリサイズ (キロバイト、-m) 無制限

開いているファイル (-n) 1024

パイプサイズ (512 バイト、-p) 8

POSIX メッセージ キュー (バイト、-q) 819200

リアルタイム優先度 (-r) 0

スタックサイズ (kbytes, -s) 8192

CPU時間(秒、-t)無制限

最大ユーザープロセス数 (-u) 31767

仮想メモリ (キロバイト、-v) 無制限

ファイルロック (-x) 無制限

ご覧のとおり、開いているファイルの構成は1024です。次のコマンドを実行すると、開いているファイルを増やすことができます。

制限 -n 65535

この変更方法では、開いているファイルの数を一時的に 65535 まで増やすことができますが、この構成はシステムを再起動すると無効になります。

もう一つの方法は、システム設定ファイルを変更することです。Ubuntuを例にとると、デフォルトの設定ファイルは次のようになります。

制限

この設定ファイルを追加する

* ソフト nofile 65535 * ハード nofile 6553

プロセスによって現在開かれているハンドルの数を表示する場合は、次のコマンドを使用できます。

lsof -p プロセスID | wc -l

さらに、スーパーバイザーを使用してプロジェクトをホストして開始すると、この構成が有効にならないという問題が発生します。これは、スーパーバイザーがオープン ハンドルの数をデフォルトで 1024 に設定するためです。

プロセスの最大オープンファイル数を表示する場合は、このプロセスのプロセス番号に対応する制限を通じて表示できます。

cat /proc/プロセスID/制限

1行目は次のとおりです。

最大オープンファイル数 10241024バイト

スーパーバイザホストプログラムのデフォルト値は1024で、これはスーパーバイザ構成の最大数です。このとき、スーパーバイザ構成ファイルを手動で変更する必要があります。変更方法は次のとおりです。Ubuntuシステムを例にとると、スーパーバイザ構成ファイルsupervisord.confを見つけます。

[supervisord]オプションにminfdsオプション設定を追加します

[supervisord]minfds=65535; 利用可能な起動ファイル記述子の最小数; デフォルト 1024

設定後、スーパーバイザーを再起動する必要があります(systemctlを例に挙げます)

systemctl スーパーバイザを再起動

効果が出るだろう

ちなみに:

cat /proc/プロセス番号/制限

対応するプロセスで開いているファイルの数を確認します

最大オープンファイル数 6553565535 バイト

上記は、Linux で開いているファイルが多すぎる問題を解決する方法の詳細な内容です。Linux で開いているファイルが多すぎる問題を解決する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Linux仮想メモリについての簡単な説明
  • Linux での C++ コンパイルとリンクの分析
  • Pytorch1.8GPU (CUDA11.1)のLinuxインストールの実装
  • docker を使用して Linux 環境に Springboot パッケージをデプロイするチュートリアル
  • Linux コマンドラインで R 言語を使用して絵を描く例
  • Linuxディレクトリ構造の詳細な紹介
  • Linuxでよく使われるコマンド パフォーマンスコマンド
  • Linux のファイル システム タイプの表示方法の例
  • Linux システムでの pip アップグレード エラーの解決策

<<:  CSS ピックアップ矢印、カタログ、アイコン実装コード

>>:  Word のコンテンツを Web サイトのエディターに直接コピーすることはお勧めしません。

推薦する

主要ブラウザとそのカーネルの紹介

トライデント コア: IE、MaxThon、TT、The World、360、Sogou Brows...

MySQL SQL 最適化チュートリアル: IN クエリと RANGE クエリ

まず、in() クエリについて説明します。 「High Performance MySQL」では、イ...

Windows 2008 Server サブドメインを親ドメインに追加すると、ドメインが既に存在するというエラー メッセージが表示されます。

Windows 2008 Serverのサブドメインを親ドメインに参加させると、「ドメインは既に存...

Linux の netstat コマンドの詳細な紹介

目次1. はじめに2. 出力情報の説明3. netstatの共通パラメータ4. netstatネット...

Baota LinuxパネルにFTP接続できない問題の解決方法の詳細な説明

Alibaba Cloud Server を使用している場合は、セキュリティ グループ設定でポート ...

React 関数コンポーネントのパフォーマンス最適化のアイデアの詳細な説明

最適化のアイデア最適化には主に 2 つの方向があります。再レンダリングの回数を減らします。 Reac...

Web ページでパラメータ名によって ActiveX コントロールのプロパティに値を割り当てる例

コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...

クラウドサーバーを購入し、Alibaba Cloud に Pagoda Panel をインストールする手順

アリババクラウドがサーバーを購入クラウドサーバーを購入し、サーバーバージョンとしてcentos 7....

Linux システムのデュアル ネットワーク カード バインディング構成の実装

システムバージョン [root@ ~]# cat /etc/redhat-release CentO...

JavaScript のデシェイクとスロットリングの例

目次安定スロットル: 手ぶれ防止: 一定時間内に最後のタスクのみを実行します。スロットル: 一定期間...

CSS グリッドレイアウトの完全ガイド

Grid は 2 次元のグリッド レイアウト システムです。これを使用すると、本質的にはハック メソ...

SQL 面接の質問: 時間差の合計を求める (重複は無視)

ある会社の BI 職の面接を受けたとき、面接で SQL に関する質問がありました。一見すると非常に簡...

iframe src 割り当ての問題 (サーバー側)

今日この問題に遭遇しました。サーバー側でiframeのsrc値を再割り当てし、iframeにIDを追...

TypeScriptのインストールと使用方法と基本的なデータ型

最初のステップはTypeScriptをグローバルにインストールすることですnpmを使用してインストー...