okuyamaを導入するまでに知っておきたいサーバリソースとの4つの関係

このたび、3回にわたって分散キーバリューストアokuyamaについて連載させていただくことになりました岩瀬です。どうぞよろしくおねがいします。1. 前回のおさらいと今回の連載についてそれでは早速ですが、本連載の対象となる分散キーバリューストアのokuyamaについてご紹介させていただきます。201

岩瀬 高博

2011年10月12日 20:00

このたび、3回にわたって分散キーバリューストアokuyamaについて連載させていただくことになりました岩瀬です。どうぞよろしくおねがいします。

1. 前回のおさらいと今回の連載について

それでは早速ですが、本連載の対象となる分散キーバリューストアのokuyamaについてご紹介させていただきます。2011年2月の連載では、全4回にわたってアーキテクチャの紹介などをさせていただきました。今回はさらに掘り下げて、導入、運用などの視点からokuyamaの解説をしていきたいと思います。

2. okuyamaが利用するサーバーリソース

ではokuyamaを導入するサーバーとの関係から見ていきたいと思います。サーバーと一口に言っても、スペックも用途もいろいろとあり、それぞれに特性があります。ではokuyamaにはどのようなサーバーが適しているのでしょうか?ここでは主にサーバースペックとokuyamaの関係を見てみましょう。

【関係1】 OSとの関係

筆者は今までokuyamaを使った環境構築を、ほぼRedHat、もしくはCentOSといったLinux系OSで行ってきました。しかし、筆者が開発時に使っているOSはWindows系のため、どちらのOSでも一定時間以上の安定稼働ができることを確認しています。ただ、どちらの場合も64bitで利用したほうが性能的に良い結果が出ていますので、なるべく64bit環境での構築をお勧めします。

またokuyamaは大量のファイルやソケットといったリソースを利用します。そのため、そういったリソースの上限値をOS側で制限している場合はあらかじめ高い値にしておくことをお勧めします。具体的にはLinuxなどの最大同時ファイルオープン数などの値になります。

【関係2】 CPUとの関係

okuyamaはCPUのスペックに大きく影響を受けるため、CPUは重要な要素となります。ではどのような部分に影響を受けるかと言うと、1コアの処理能力よりもコア数です。それはokuyamaのネットワーク部分のアーキテクチャである"タスク別キューイング・メカニズム"に起因します(詳しくは、リンク先の記事を参照)。この仕組みはクライアントからの処理依頼を受信する部分と、依頼を実行する部分を別のスレッドとすることで処理依頼待ちに起因するブロッキングをなくす仕組みです。この仕組みには少なくとも2つ以上のスレッド(正確には、接続処理を行うスレッドも存在します)が並列に稼働することで性能を発揮できるように実装されています。

そのため、マルチコアとシングルコアでは大きく性能が異なります。そして、この並列数を決めているのが、MasterNode.propertiesおよび、DataNode.propertiesの最終行に定義されている図1の内容になります。この定義の"*ParallelExecution"の部分がThread数になり、上から「接続処理」、「受信処理」、「メイン処理」となります。

図1:MasterNode.propertiesとDataNode.properties

【関係3】 メモリとの関係

続いてメモリですが、ここでは単純に容量だけにフォーカスします。まずokuyamaはClient、MasterNode、DataNodeで構築されているため、3つの箇所でメモリ量を意識する必要があります。

はじめにClientですが、ここでは頻繁に利用するメソッドを基に、稼働させるアプリケーションサーバーが必要とするメモリ量を検討する必要があります。特にメモリ使用量が多くなる可能性があるメソッド名を図2にまとめます。これらのメソッド全てが、複数のKeyやValueを扱う処理です。

図2:メモリ使用量が多くなる可能性のあるメソッド名

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30