森岡です. ちょっと遅くなりましたが, どなたもリプライしないみたいなので. In article <199910300357.BJD18729.BHNJFL _at_ mikage.to> mikage _at_ mikage.to writes: >> 一方で、これ以外にプロセスごとにオープンできるファイルの最大数が >> 存在します。残念なことに、これはそう簡単には変更できません。この >> 最大値はデフォルトでは 1024 に設定されており、これを変更するため >> には /usr/src/linux/include/linux にある limits.h と fs.h を書き >> 変える必要があります。NR_OPEN の定義を変更してカーネルを再コンパ >> イルしてください。 >> >> と記述されています. >> しかし,実験してみたところ,上記の NR_OPEN を変更しなくても, >> file-max を十分大きくしてから,ulimit -n 8192 などとすれば, >> 多くのファイルが open できるようになるように見えます. JF が旧いというわけではなくて, 元の英語の proc.txt も同じです. 私も実験してみましたが, 実際には file-max で多くのファイルが open 出来ました. そこで fs.h を調べてみると, #define NR_OPEN (1024*1024) /* Absolute upper limit on fd num */ #define INR_OPEN 1024 /* Initial setting for nfile rlimits */ と定義されています. つまり proc.txt の内容が旧いという事です. >> 2つめは,デフォルトの file descriptor の最大値の >> 変更方法です. >> root で,ulimit -n 8192 とすれば増えるのですが, >> root でなければ増やすことができません. ユーザ毎の初期値は /etc/limits で設定します. man limits して下さい. このファイルが読まれるのは login 時の事なので, デーモンに対して最大値を設定するには, /sbin/initscript 中で ulimit を実行する必要があります. man initscript で説明が出ます. #しかしながら, apache の 1 プロセス中で 1024 個以上のファイル #をオープンする必要が本当にあるのでしょうか? ************************************************** * 森岡和才 - メールアドレスにエイリアス付けました* * Kazutoshi Morioka <k-morioka _at_ pop07.odn.ne.jp> * * 福岡県遠賀郡 http://k-pup.zoma.co.jp/~morioka/ * **************************************************
Follow-Ups:
- [linux-users:60094] Re: LIMIT の上限値の変更HIROSE Masaaki
- Prev by Subject: [linux-users:60007] Pass the address where SIGSEGV happened to SIGSEGV handler
- Next by Subject: [linux-users:60009] Re: [linux-users:60006] Re: Slackwareのインストール
- Previous by thread: [linux-users:60007] Pass the address where SIGSEGV happened to SIGSEGV handler
- Next by thread: [linux-users:60094] Re: LIMIT の上限値の変更
- Indexes:[Main][Thread]