mysql:2554
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Thu, 5 Oct 2000 01:25:43 +0900
Subject: [mysql 02554] Re: 複数同時アクセス数に対しての対処方法についての質問
とみたです。 On Tue, 3 Oct 2000 22:49:27 +0900 "ADDY" <addy@xxxxxxxxxx> wrote: > MySQLの場合はデーモンは死なずに生きていますが、下記のような > メッセージがエラーログにありますし、アクセスが異常に遅くなっています。 > > 00/10/03 22:03:08 >> Can't create UNIX socket (23) > 00/10/03 22:03:08 >> error occured::database connect > > ソケットの上限ってあるのでしょうか?又、上限を変更したい場合はどのよう > にすればよいのでしょう。おまけに、mysqladminやmysqlなどを含めたLIN > UXのコマンドでさえ、 > Too many open files in system > なんて言われてしまうあり様です。 errno 23 == Too many open files in system です。 つまり、システムで同時にオープン可能なファイル数を超えて、 ファイル(ソケット含む)をオープンしようとしているということです。 cat /proc/sys/fs/file-nr で現在どれくらいファイルをオープンしているか みることができます。手元にある ja/proc.txt には次のようにかかれてます。 ------------------------------------------------------------------- file-nr と file-max カーネルは動的にファイルハンドルを確保しますが、それを解放するこ とはしません。 file-max の値は Linux カーネルが割り当てることができるファイルハ ンドルの最大数を示します。もしファイルハンドルが足りないというエ ラーメッセージが多く出る場合には、この上限を上げた方が良いでしょ う。この値のデフォルトは 4096 です。変更するには単にこのファイル に新しい数を書き込むだけです: # cat /proc/sys/fs/file-max 4096 # echo 8192 > /proc/sys/fs/file-max # cat /proc/sys/fs/file-max 8192 この単に新しい値を echo して対応するファイルに書き込むという修正 方法は、カーネルの全ての変更可能なパラメータに対して有効です。 file-nr の三つの値は、割り合て済みのファイルハンドルの数、使用中 のファイルハンドルの数、ファイルハンドルの最大数を示しています。 割り当て済みのファイルハンドルの数が最大値近くになっていても実際 に使用中の数が十分に小さければ、ファイルハンドルの使用量のピーク の数が示されているだけですから、最大値を増やす必要はありません。 一方で、これ以外にプロセスごとにオープンできるファイルの最大数が 存在します。残念なことに、これはそう簡単には変更できません。この 最大値はデフォルトでは 1024 に設定されており、これを変更するため には /usr/src/linux/include/linux にある limits.h と fs.h を書き 変える必要があります。NR_OPEN の定義を変更してカーネルを再コンパ イルしてください。 ------------------------------------------------------------------- --- とみたまさひろ <tommy@xxxxxxxxxx> http://www.tmtm.org 日本MySQLユーザ会 http://www.mysql.gr.jp
2551 2000-10-03 22:49 ["ADDY" <addy@xxxxxxx] 複数同時アクセス数に対しての対処方法についての質問 2552 2000-10-04 20:57 ┣[Tomohiro Takahashi <] -> 2554 2000-10-05 01:25 ┗[とみたまさひろ <tomm] 2556 2000-10-05 13:31 ┗[Bansoukou <bansoukou]