すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Ulimitのため、SSHログイン後にLinuxインスタンスでシステム例外が発生します。

最終更新日:Dec 12, 2024

説明

免責事項: この記事には、サードパーティ製品に関する情報が含まれている場合があります。 そのような情報は参照だけのためです。 Alibaba Cloudは、明示または黙示を問わず、サードパーティ製品のパフォーマンスと信頼性、および製品に対する操作の潜在的な影響に関して、いかなる保証も行いません。

問題の説明

SSHを使用してLinuxインスタンスにログインすると、コマンドラインインターフェイス (CLI) を使用すると、次のエラーメッセージが表示されます。

-bash: fork: retry: Resource temporarily unavailable.
pam_limits(sshd:session):could not sent limit for 'nofile':operaton not permitted.
Permission denied.

原因

Shellプロセスに含めることができるファイルの最大数は、サーバーのUlimitシステム環境に含まれるクォータよりも大きい。

解決策

説明

以下の点にご注意ください。

  • インスタンス設定やデータの変更など、リスクを引き起こす可能性のある操作を実行する前に、データのセキュリティを確保するために、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認することを推奨します。

  • ECSおよびRDSインスタンスを含むがこれらに限定されないインスタンスの構成およびデータを変更する場合、スナップショットを作成するか、RDSログバックアップを有効にすることを推奨します。

  • Alibaba Cloud管理コンソールでログオンアカウントやパスワードなどのセキュリティ情報を承認または送信した場合は、そのような情報をタイムリーに変更することを推奨します。

説明

: この記事の構成と説明は、CentOS 7.6 64ビットおよびCentOS 5 64ビットオペレーティングシステムでテストされています。 他のタイプおよびバージョンのオペレーティングシステム構成は異なっていてもよい。 詳細については、オペレーティングシステムの公式ドキュメントを参照してください。

上記の原因に基づいて、CentOSシステムバージョンのlimit. confファイルを変更して、システム環境の制限を完全に変更する必要があります。 CentOS 6以降のバージョンでは、X-nproc.confファイルはシステム環境の制限を管理します。 したがって、異なるバージョンの操作指示は次のとおりです。

説明

注: X-nproc.confファイルには、システムバージョンによって異なるプレフィックスがあります。たとえば、CentOS 6では90-nproc.conf、CentOS 7では20-nproc.confです。

CentOS 6より前のバージョン

例としてCentOS 5 64ビットシステムバージョンを取り上げます。 手順は次のとおりです。

  1. Passmanagement terminallogをインスタンスに移動し、次のコマンドを実行して現在のUlimitシステムリソース制限を表示し、オープンシステムリソース制限の値が小さすぎるため、システムリソース制限を有効にするかどうかを確認します。

    cat /etc/security/limits.conf

    コマンドの出力は次のとおりです。デフォルトでは、システムリソースの制限はありません。

    説明

    注:

    • システムユーザー <domain> を制限する必要があります。* すべてのユーザーを置き換えることができます。

    • <type> には、softhard-3つのパラメーターがあります。

      • soft: 現在のシステムでアクティブな <value> 値。

      • hardは、システムで設定された最大 <value> 値を指します。

      • soft the limitはhard limitより高くすることはできません。-softhardの値は同時に設定されます。

    • <item> 制限する必要があるリソースの種類。 次の表に、リソースタイプのパラメーターを示します。

      • coreは、カーネルファイルのサイズを制限することを示します。

      • rssは、最大永続設定サイズを指します。

      • nofileは、開いているファイルの最大数を示します。

      • noprocは最大プロセス数を示します。

  2. システムがシステムリソース制限を有効にして構成する場合は、limits.confファイルを編集し、リソースタイプのコード操作を選択してコメントアウトし、オンサイトのフィードバック結果に基づいてnoprocまたはnofileパラメーター制限を変更または削除します。

    説明

    注: 例としてnoprocをメモします。

    1. 次のコマンドを実行してlimits.confファイルをバックアップします。

      cp -af /etc/security/limits.conf /root/limits.conf_bak

    2. 次のコマンドを実行して編集モードに入ります。

      vim /etc/security/limits.conf

    3. nofileパラメーターが制限するリソースタイプコード。 コマンド出力は次のとおりです。

  3. 保存して編集モードを終了した後、Linuxインスタンスを再起動します。

CentOS 6以降のバージョン

例としてCentOS 7.6 64ビットバージョンを取り上げます。 手順は次のとおりです。

  1. 管理端末からインスタンスにログインし、次のコマンドを実行して現在のUlimitシステムリソースの制限を表示します。

    cat /etc/security/limits.d/20-nproc.conf

    同様の出力が表示されます。 次の図は、rootユーザーを除くすべてのユーザーに対して、システムリソースのスロットリングが有効になっており、接続プロセスの最大数が4096ていることを示しています。 オンサイト環境で確認します。

  2. CentOSファイルを変更するには、CentOS 6以前のバージョンの手順に従います。

    説明

    注: これらのファイルをバックアップしてから の操作。

  3. 上記の操作が完了し、設定が保存されたら、対応するLinuxインスタンスを再起動します。

ドキュメント

SSHリモート接続の問題の詳細については、「SSHおよびSSHの原則によるLinuxインスタンスのリモートログオン障害のトラブルシューティングのガイドライン」をご参照ください。

適用範囲

  • ECS