Slide 6
Slide 6 text
もんだいだらけの…
• メモリリーク
ステートフルサーバの場合、状態を内部に持つのでどんどんオブジェクトが溜まっていく。完璧に
対応することもできなくはないが、それをやるコストがかかってしまう。一般的には定期的に再起
動させることで、ある程度のメモリリークを妥協し、効率よく開発する。
• NAT 更新(あるいは案内)
LB 層での RR や WRR 等は利用できない。各サーバ、全ポート固定で割り振っても良かったが、安
定した内部システムに大量の NAT エントリを作るのはリスクが高かった。できればグローバル IP
直結にし、個別の Firewall が好ましい。いずれにせよ管理コストがふくらむ。
• デプロイ
ディレクトリスイッチや Apache のリロードのように完璧に近いふるまいができない。 nodejs の
デーモン化ツールは普通のステートレス Web 向けのものがほとんど。となると自前でそれを考慮し
たつくりにしなければならない。
• モニタリング
プロセスの監視や負荷の監視が要るが、 Apache ではないので何か回収するための仕組みを作らな
いといけない。既存のメトリクス回収システムとのプラグインを作らないといけない。
• マルチコア対応
nodejs はシングルスレッド・イベントドリブンで安定高速動作するが、マルチコア OS に乗せると
そのサーバの性能を出し切れない。となると、 Prefork 系のアプローチを取ってマルチプロセスで
運用するなど、 NAT の仕組みと競合したり、オーケストレーション層を対応しないといけない。