システム要件
MobileFirst Analytics Server では、データ・ストアとクラスター管理に組み込み Elasticsearch ライブラリーを使用します。 これは、高速ディスク入出力を要求する高性能のメモリー内検索および照会エンジンを目指すため、 いくつかの実動システム要件に従う必要があります。 一般的に、CPU が問題となる前に、メモリーとディスクが不足する (または、ディスク入出力がパフォーマンス・ボトルネックであると分かる) 可能性が高くなります。 クラスター環境では、高速で、信頼性が高く、同一場所に設置されたノード・クラスターが必要です。
オペレーティング・システム
- CentOS/RHEL 6.x/7.x
- Oracle Enterprise Linux 6/7 (RHEL カーネルのみ)
- Ubuntu 12.04/14.04
- SLES 11/12
- OpenSuSE 13.2
- Windows Server 2012/R2
- Debian 7
JVM
- Oracle JVM 1.7u55+
- Oracle JVM 1.8u20+
- IcedTea OpenJDK 1.7.0.55+
ハードウェア
- RAM: RAM は大きいほうがよいですが、ノード当たり 64 GB 以下です。 32 GB と 16 GB も許容されます。 8 GB 未満では、クラスターに多くの小さなノードが必要です。64 GB は無駄で、Java™ がポインターにメモリーを使用するしくみの理由で問題があります。
- ディスク: 可能な場合は SSD を使用します。あるいは、SSD が可能でなければ高速回転の従来型ディスクを RAID 0 構成で使用します。
- CPU: CPU は、傾向としてパフォーマンス・ボトルネックになりません。2 コアから 8 コアのシステムを使用します。
- ネットワーク: 水平方向のスケールアウトが必要になる場合は、1 GbE から 10 GbE の速度をサポートする、高速で、信頼性が高いデータ・センターが必要です。
ハードウェア構成
- JVM には、使用可能な RAM の半分を設定します。ただし、32 GB を超えないでください。
- ES_HEAP_SIZE 環境変数を 32g に設定します。
- -Xmx32g -Xms32g を使用して JVM フラグを設定します。
- ディスク・スワップをオフにします。
オペレーティング・システムがヒープをディスクとの間でスワップできるようにすると、著しくパフォーマンスが低下します。
- 一時的な設定: sudo swapoff -a
- 永久的な設定: オペレーティング・システムの資料に従って、/etc/fstab を編集します。
- どちらの選択肢も可能でない場合、Elasticsearch オプションの bootstrap.mlockall: true を設定します (この値は、組み込み Elasticsearch インスタンスのデフォルトです)。
- 許容されるオープン・ファイル・ディスクリプター数を増やします。
- Linux では通常、プロセス当たりのオープン・ファイル・ディスクリプターの数を小さい 1024 に制限しています。
- この値を永久に大幅に増やす (64,000 など) 方法について、ご使用のオペレーティング・システムの資料を調べてください。
- Elasticsearch では、さまざまなファイルに NioFS と MMapFS のミックスも使用します。
mmap されたファイルに多くの仮想メモリーが使用可能になるように、最大マップ・カウントを増やします。
- 一時的な設定: sysctl -w vm.max_map_count=262144
- 永久的な設定: /etc/sysctl.conf で vm.max_map_count 設定を変更します。
- BSD と Linux を使用する場合は、必ず、オペレーティング・システム入出力スケジューラーを cfq ではなく、 deadline または noop に設定してください。