分123プロセス数とソケット数の設定ここでは,Kai設定ファイル内のmemcache_max_processes,rpc_max_processes,max_connectionsについて説明します。これらの設定値は,クライアントからの最大同時接続数を制限し,ネットワークのトラフィックを調節するために使用します。設定を変更するのであれば,なるべく,以下の条件を守るようにしてください。αKaiは,デフォルトの設定ファイルを変更せずに起動すると,約70個のErlangプロセスを起動します。その内の約40個が,TCP/IP接続を待ち受ける為に待機しているプロセスです。設定を行う事ができます。それぞれの意味は,以下の通りです。memcachedクライアントからの同時接続数を設定します。大きい値を設定すると同時接続数は増えますが,ノード間通信が増えるため,クラスタ全体の負荷が上がります。rpc_max_processes,max_connectionsに大きな値を設定する必要があります。クラスタを構成する他のノードからの同時接続数を設定します。他のノードへの同時接続数を設定します。性能を引き出すために,一つのノードに対して複数接続を行う事もあります。memcache_max_processes,rpc_max_processesとは異なり,ここで設定した値はプロセス数とは関係ありません。ノードにmemcachedクライアントが1つ接続すると,N個分(Nは,Quorumの設定値⁠)⁠,クラスタ内の他のノードへ接続が発生します。VMのコンソールから手動で行なうノード間通信を考慮すると,余分に幾つか接続数を確保しておく必要があります。ノード間通信で接続される側のノードを考慮すると,クラスタを構成する他のノードにmemcachedクライアントが1つ接続すると,自ノードへ1つ接続が発生する可能性があります。memcache_max_processes」となります。データの取得・保存の際は,N個のノード全てがレスポンスを返す必要はないため,rpc_max_processesに少々低い値を設定しても,それほどレスポンス速度が低下する事はありません。大きな値を設定したとしても、ネットワーク・トラフィックが増える事はありません。クライアント同時接続数となります。減らせないか検討してください。これらの設定値は,最適な値を見つける事が難しいため,検証環境をご用意いただき,実際に負荷を掛けながら希望するパフォーマンスに達するまでチューニングし続けてください。例として,ストレージにetsを選んだ際に,以下の設定値で良いパフォーマンスが出たとの報告がありますので参考にしてください。256これらの設定値に大きな値を設定すると,EMFILEエラーが発生する事があります。VMは,OSからは一つのプロセスとして扱われているため,Kaiが大量にファイル・ディスクリプタを消費すると,OSからは一つのプロセスが大量にファイル・ディスクリプタを消費していると見なされます。よって,これらの設定値に大きな値を指定する際は,limitコマンドやsysctlコマンド,OSの設定ファイルを編集するなどして,一つのプロセスが扱えるファイル・ディスクリプタの数を増やす必要があります。設定方法は,各プラットフォームごとに異なります。以下に例を挙げておきますが,詳しくは,ご利用のプラットフォームのマニュアルなどをご参照ください。"/etc/security/limits.conf"を編集し,Kai実行ユーザのnofileに大きな値を設定してください。必要があれば,"/etc/sysctl.conf"を編集し,fs.file-maxに大きな値を設定してください。"/etc/login.conf"を編集し,Kai実行ユーザのログインクラスのopenfilesに大きな値を設定してください。必要があれば,"/etc/sysctl.conf"を編集し,kern.maxfilesとkern.maxfilesperprocに大きな値を設定してください。スループットが高くなる事が予想される場合は,ソケットバッファのサイズを増やす事で,Kaiの性能を引き出す事ができます。こちらも,設定方法が各プラットフォームごとに異なります。以下に例を挙げておきますが,詳しくは,ご利用のプラットフォームのマニュアルなどをご参照ください。"/etc/sysctl.conf"を編集し,net.core.rmem_max,net.core.wmem_max,net.core.optmem_maxに大きな値を設定してください。"/etc/sysctl.conf"を編集し,net.inet.tcp.sendspace,net.inet.tcp.recvspace,kern.ipc.maxsockbufに大きな値を設定してください。前述で,ネットワーク・トラフィックに関してのみ説明しましたが,プロセスを大量にSpawnする事で発生する負荷には触れませんでした。ご存知の方も多いかとは思いますが,Erlangにはプロセスを大量にSpawnしても負荷が低いという利点があります。このため(だけではありませんが⁠)⁠,Erlangで作られたサーバは,プログラムの設計やチューニング次第で,C10K問題を比較的簡単に回避する事が可能です。Kaiでプロセス数を調節しているのは,プロセス負荷を下げる事が目的ではなく,ネットワークトラフィックを下げる事が目的です。ErlangプロセスやC10K問題のより詳しい内容については以下をご参照ください。Erlang著者プロフィール幾田雅仁(いくたまさひと)酪農,ゴルフのキャディさん,某大手パソコン通信の下請け,某大手ポータルサイトなどを経て,決済代行を生業とする株式会社ゼロに入社。プレゼンを見て感銘を受け,無理矢理開発に参加し,現在に至る。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。