次のコマンドでsiegeを使用して、自分のサーバーでストレステストを実行しようとしています。
$ siege -c 500 myweb.com/somefile.php
しかし、私はこのエラーを受け取ります:
[error] descriptor table full sock.c:119: Too many open files
そして私もこの警告を受けます:
libgcc_s.so.1 must be installed for pthread_cancel to work
しかし、私はUbuntu 15.04(開発ブランチ)を使用していて、パッケージlibgcc1をインストールしているので、なぜ.so共有ライブラリーについて理解できないのかわかりません。
オープンファイルが多すぎることとlibgcc警告を解決するにはどうすればよいですか?
この問題を自分で解決するには、OSの「ulimit」設定を調整する必要がありました。
ulimit -a
-現在の設定を確認
ulimit -n 10000
-設定値を編集
出典: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595527
それに応じて、同じセッション内で同じユーザーが開くことができるファイルの最大数を増やすだけです。
ソース: http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
エラーメッセージは誤解を招く、しかしあなたのコマンドにはエラーがあります:
$ siege -c 500 myweb.com/somefile.php
-c
の後に、シミュレートされた同意ユーザーの数を指定する必要があります。
ログファイルの権限を確認することを忘れないでください。デフォルトでは/var/log/siege.log
です。
または、--log=/home/user/siege.log
を追加して独自のものを指定します
gcc-multilib
のインストールはそれを助けてくれました(Ubuntu 16.04.3 LTS)
Sudo apt-get install gcc-multilib