Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxのリソース制限とオープンテクニック

Linuxのリソース制限とオープンテクニック

  

ulimit -aは、現在のさまざまなユーザープロセス制限を表示するために使用されます。 Linuxでは、ユーザーごとに最大プロセス数が制限されています。パフォーマンスを向上させるために、デバイスリソースに応じて、各Linuxユーザーの最大プロセス数を10000に設定できます:多くのソケット接続で、ulimit -u 10000を開き、それらを開きます。 Javaアプリケーションの場合は、ulimit -n xxを使用してプロセスごとに開くことができるファイル数を変更するのが最善ですデフォルト値は1024です。 Ulimit -n 4096プロセスごとに開くことができるファイルの数を4096に増やします。デフォルトは1024です。無制限(無制限)に設定されているその他の重要な設定は次のとおりです。データセグメントの長さ:ulimit -d無制限の最大メモリサイズ:ulimit -m無制限のスタックサイズ:ulimit -s unlimitedCPU時間:ulimit -t無制限の仮想メモリ:ulimit -v無制限

一時的に、ulimitコマンドでシェルセッションにログインします。恒久的に、対応するulimitステートメントをログインシェルによって読み込まれたファイル、すなわち以下のようなシェル固有のユーザーリソースファイルに追加して、最大プロセス数を解放し、Linuxシステムの最大化を図ります。ファイルのオープン制限:vi /etc/security/limits.conf#次の行を追加してください* soft noproc 11000 * hard noproc 11000 * soft nofile 4100 * hard nofile 4100

説明:*は、すべてのユーザーを対象としたnoprocを表します。 a)vi /etc /ssh /sshd_configがUserLoginの値をyesに変更すると、sshクライアントのulimit -aリソース制限を確認するのに便利です。 #コメントを削除し、sshdサービスを再起動します。/etc/init.d/sshd restart3)、すべてのLinuxユーザーの環境変数ファイルを変更します。vi /etc /profileulimit -u 10000ulimit -n 4096ulimit -d unlimitedulimit -m unlimitedulimit - s unlimitedulimit -t unlimitedulimit -v unlimited

/*********************************** ***

分析のためにプログラム内で複数のファイルを開く必要がある場合があります。システムは、通常、デフォルト数は1024が通常の使用のために十分である(あなたははulimit -aで見ることができます)ですが、プログラムが懸念されるため、それはあまりにも少ないです。

2つのファイルを修正します。 1./etc/security/limits.confvi /etc/security/limits.conf plus:* soft nofile 8192 * hard nofile 204802./etc/pam.d/loginsession required /lib/security/pam_limits.so*** ******* /etc/pam.d/system-authファイルに、システムがこの制限を強制するために必要な/lib/security/$ISA/pam_limits.soという行が含まれていることも確認してください。 *********** 3.一般ユーザーの.bash_profile#ulimit -n 1024再ログインOK——— -for solaris

実際には、システムにそのようなコマンドがあります。 ulimit、次に示すのはulimit -aの実行結果です。

時間(秒)unlimitedfile(ブロック)unlimiteddata(kbytes)unlimitedstack(kbytes)8192coredump(ブロック)unlimitednofiles(記述子)1024memory(kbytes)unlimitedここで、nofilesはファイルです。記述子の変数値。rlim_fd_curパラメーターの影響を受けます。これは、ulimit -n numberコマンドで変更できます。しかし、どのように変更しても、プログラムはfd = 256の制限を超えることはできません。次の情報は、 『Solarisカーネルのチューンアップ・リファレンスマニュアル』に記載されています。

標準I /Oを使用する32ビットプログラムは、256ファイル記述子に制限されています。標準I /Oを使用する64ビットプログラムは、最大20億の記述子を使用できます。つまり、32ビットプログラムではこの制限を超えることはできず、64ビットプログラムだけが最大2億個のファイル記述子を使用できますSUNのハードウェアとソフトウェアは、64ビットアーキテクチャを実現しています。解決策は、プログラムを64ビットプログラムにコンパイルすることです64ビットプログラムを生成するためには、64ビットコンパイラが必要です(実際にはそうではありません)あなたがウェブサイト上で64ビットコンパイラgccをダウンロードするためにwww.sunfreeware.comに行くなら。特に注意はされていませんが64ビットgccですが、予期せぬ効果があります。つまり、gccでコンパイルするときに-m64オプションを追加することによって64ビットプログラムを生成できることをソフトウェアの説明が示しています。

したがって、gcc-m64を使用して64ビットプログラムをコンパイルおよび生成した後は、ulimit -n 102400を使用してfdの数を大きなサイズに設定すると、すべての問題が解決され、十分なファイル記述子がなくなります。状況です。

/etc /systemファイルのrlimi_fc_maxおよびrlim_fd_cur形式を次のように設定します。

*ファイル記述子のハード制限を設定rlim_fd_max = 4096 *ファイル記述子のソフト制限を設定rlim_fd_cur = 1024コマンドulimitは次の形式を使用します:

使用方法:ulimit [-HSacdfnstv] [limit] ulimit -aは各パラメータの設定値を表示し、ulimit -nはfdの最大値を設定します。 ************************************************ < Br>

ファイル記述子の制限の変更

Solarisには2つのパラメータ制御ファイルのオープン可能なファイル記述子があります:rlim_fd_max、rlim_fd_cur。前者はハード設定、後者はパーミッション設定、後者はソフト設定であり、ユーザはlimitやsetrlimit()で変更することができ、最大値は前者を超えることはできません。通常、/etc /systemでこれら2つのパラメータを変更します。

set rlim_fd_max = 65535

set rlim_fd_cur = 65535

========== =================

ulimitプロセスを開始するためにシェルによって使用されるリソース。

このコマンドを使用して、プロセスが占有しているリソースのステータスを確認できます。

使用方法:ulimit [-acdfHlmnpsStvw] [size]

-Hハードウェアリソース制限を設定します。-Sソフトウェアリソース制限を設定します。-a現在のリソース制限をすべて表示します。-cサイズ:コアファイルの最大値を設定します単位:blocks-dサイズ:データセグメントの最大値を設定します単位:kバイト-fサイズ:作成されたファイルの最大値を設定します単位:blocks-lサイズ:メモリ内の最大ロックプロセスを設定します値単位:kbytes-m size:使用できる常駐メモリの最大値を設定します単位:kbytes-n size:カーネルが同時にオープンできるファイルディスクリプタの最大値を設定します単位:np size:パイプバッファを設定します最大値単位:kバイト-sサイズ:スタックの最大値を設定します単位:kバイト-tサイズ:CPU使用時間の上限の上限を設定します単位:秒-vサイズ:仮想メモリの最大値を設定します単位:kバイト51] RH8環境ファイル/etc /profileで、システムがどのようにulimitを構成するかを見ることができます。

#grep ulimit /etc /profileulimit -S -c 0> /dev /null 2>& 1(出力のリダイレクト、通常の出力、および例外の出力は無視されます)

このステートメントは、ソフトウェアリソースとコアテキストを設定します。サイズ設定2]シェルによって作成されるファイルのサイズを制限したい場合は、次のようにします。

#ll h-rw-r– r– 1 lee lee 150062 July 22 02:39 h #ulimit -f 100#作成したファイルの最大ブロック数(1ブロック= 512バイト)を設定します。#cat h> newhファイルサイズの制限を超えました#ll newh-rw-r&r; ndash; 1 lee lee 51200 11月8日11:47 newh file hサイズは15062バイト、作成したファイルのサイズは512バイトx 100ブロック= 51200バイトですが、もちろん設定に応じて51200バイトのnewhファイルが生成されます。同様に、設定したいulimitを/etc /profile環境ファイルに入れます(すべてのユーザーに対して設定されている場合は、/etc /security /limit.confに設定できます)。

Copyright © Windowsの知識 All Rights Reserved