どうも、HAProxy のドキュメントを見ない日は無いかっぱ@inokara) です…が未だによく解っておりません。すいません。

はじめに

HAProxy の設定の中でパフォーマンスにより起因していそーなパラメータをピックアップしてデフォルトの仕様を確認してみました(ドキュメントを意訳してみました)。

今回の対象は下記の通りです。

  • ulimit-n
  • maxconn
  • nbproc

その他、パフォーマンスチューニング周りはドキュメントの以下にまとまっています。

メモ

ulimit-n

ulimit-n は下記のように書かれています。

Sets the maximum number of per-process file-descriptors to . By default, it is automatically computed, so it is recommended not to use this option.

  • HAProxy のプロセス毎に割り当てることが出来るファイルディスクリプタの最大数
  • HAProxy 側で自動的に計算されるとのことで設定しないことを推奨

とのことです。

maxconn

maxconn は下記のように書かれています。

Sets the maximum per-process number of concurrent connections to .

  • HAProxy のプロセス毎の最大接続数を指定
  • コマンドライン引数の -n と同じ機能
  • この制限を超えた場合には接続受け入れを停止する

さらに…

The “ulimit-n” parameter is automatically adjusted according to this value.

とあり、冒頭の ulimit-n を指定すると maxconn 自体は自動調整されるようです。

nbproc

nbproc はパフォーマンス関連のパラメータではありませんが、マルチ CPU で利用する場合には気にする必要があるパラメータかと思います。

Creates $number processes when going daemon. This requires the “daemon” mode. By default, only one process is created, which is the recommended mode of operation. For systems limited to small sets of file descriptors per process, it may be needed to fork multiple daemons.

  • $number で指定した HAProxy を起動します
  • daemon モード時に利用します(デーモンモードである必要あり)
  • デフォルトでは 1 プロセス(推奨)
  • 複数のデーモンをフォークするために、プロセス毎にシステム(OS)の最小のファイルディスクリプタが設定される(超意訳)

最後の部分はチト意味不明ですがマルチ CPU で HAProxy を利用する場合、思った以上にパフォーマンスが出ないよって時にはここを調整してみるのも良いかもしれません。

すいません

小ネタ続きで。

元記事は、こちらです