jvm operation casual talks

60
JVM Operation Casual Talks Cassandra監視で やっていること

Upload: oranie-narut

Post on 30-Jun-2015

6.552 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Jvm operation casual talks

JVM Operation Casual Talks

Cassandra監視で

やっていること

Page 2: Jvm operation casual talks

自己紹介

id:oranie

@oranie

株式会社 Cyberagent 所属

Page 3: Jvm operation casual talks

注意:Cassandraの項目などは

Ver1.1をベースにしています。

Page 4: Jvm operation casual talks

運用しているシステムについて

Page 5: Jvm operation casual talks

サイバーエージェント スマートフォンプラットフォーム

s.amebame.com

Page 6: Jvm operation casual talks

SPOFの無いマルチマスタ

ノード追加でスケールする

処理能力とデータ保持量

スキーマレスで柔軟な

データ操作

Page 7: Jvm operation casual talks

System Scale

Daily Peak Cluster Request

Read : about 45,000 qps

Write : about 40,000 qps

Total Data: about 35TB + snapshot

1 node avg: 350GB ※RF:3

Page 8: Jvm operation casual talks

Latency

Read / avg 4ms.

Write / avg 0.1~0.7ms

Page 9: Jvm operation casual talks

Cluster HW spec

CPU : 16 ~ 24 core (HT enable)

Memory : 64GB

Disk : SAS 600GB RAID 10 ※一部テスト的にSATAだったりSSD入れてみたりのレンジがあった。

Page 10: Jvm operation casual talks

Daily Operation

Page 11: Jvm operation casual talks

おおまかなまとめ

サイバーエージェント 公式エンジニアブログ

http://ameblo.jp/principia-ca/entry-11514557323.html

Page 12: Jvm operation casual talks

Monitoring

監視

Page 13: Jvm operation casual talks

運用担当当初

Cassandraの監視って何すればいいの?からスタート

Page 14: Jvm operation casual talks

Cassandraにはクエリを投げてMySQLで言う

SHOW STATUS hogehoge

的な奴は無かった(ハズ)

Page 15: Jvm operation casual talks

なにかあってもどこで

性能劣化したかどうかとか

分からない。

Page 16: Jvm operation casual talks

とりあえず既存で使っていた

JavaアプリのCactiのテンプレ見る

Page 17: Jvm operation casual talks

JVMの

GC頻度

ヒープメモリの使い方とか

グラフに取っている

Page 18: Jvm operation casual talks

これどこに値とか

入っているんだろう?

Page 19: Jvm operation casual talks

Mbeansという所に

色々入っていた。

見るのにVisualVMというのが

便利と教えてもらう。

Page 20: Jvm operation casual talks
Page 21: Jvm operation casual talks

見てみるとJVMで取れる値と

アプリケーション(Cassandra)特有の値など色々入っていた。

Page 22: Jvm operation casual talks

JVMで取れる値 =

Linux OSで取れる様な物

アプリ固有の物 =

Apacheのmod_statusで取れる様な物

が入っているので、ひたすら必要そうな物探す。

Page 23: Jvm operation casual talks

で、色々あるのは分かったけど

これ結局どうやって値

取っているの?

Page 24: Jvm operation casual talks

CactiはSNMPでした。

Page 25: Jvm operation casual talks

http://d.hatena.ne.jp/hogem/20121206/1354802392

hogemさんのブログより引用

Page 26: Jvm operation casual talks

なんというか・・・

人類にやさしくない・・・。

Page 27: Jvm operation casual talks

これから欲しい値取る時にSNMPで頑張るの・・・

oid調べるのとか面倒くせ。

Page 28: Jvm operation casual talks

JMXという違う

インターフェイスが

ある事を知る

Page 29: Jvm operation casual talks

JMX = Java Management Extensions (JMX)

Page 30: Jvm operation casual talks

調べたらJavaで書かないと

無理ゲーくさい

Page 31: Jvm operation casual talks

Java……..

ちょっとスクリプト的な奴作ってもNagiosで頻繁に叩くとかの時に

起動コスト高くね?

Page 32: Jvm operation casual talks

つーかJavaって

「くるまクラスを作って見よう」

ぐらいしかやった事ねー

PerlとかRubyとかPython

とかでサラッと書きたい。

Page 33: Jvm operation casual talks

そこで社内の人から

Jolokia使えば?

と教えて貰う。

Page 34: Jvm operation casual talks
Page 35: Jvm operation casual talks

簡単に言うとJMXを

REST APIインターフェイスに

プロキシしてくれるモジュール。

値をJSONで返してくれる。

Page 36: Jvm operation casual talks

ex:)

http://localhost:8080/jolokia/read/java.lang:type=Memory/

HeapMemoryUsage

に対してGETする。

Page 37: Jvm operation casual talks

ex:)

{ "committed" : 18292736, "used" : 15348352, "max" :

532742144, "init" : 0 }

こんな感じ。

Page 38: Jvm operation casual talks

とても分かりやすい。

ちょっと整形すればbashでも簡単に書ける。

PerlならJMX::Jmx4PerlというCPANモジュールも出ている。

Page 39: Jvm operation casual talks

簡単な使い方は同僚の@la_luna_azul が書いた

Page 40: Jvm operation casual talks

死活・閾値監視

Page 41: Jvm operation casual talks

Nagios + Jenkins + Perl Script

to mail & Push notification

Page 42: Jvm operation casual talks

死活監視系概要

Page 43: Jvm operation casual talks

閾値監視系概要

Page 44: Jvm operation casual talks

トレンド監視

Page 45: Jvm operation casual talks
Page 46: Jvm operation casual talks
Page 47: Jvm operation casual talks

OS monitor

・Cacti :

OS, JVM Resource graph

・Proteus-monitor : Real Time OS monitor

(cyberagent engineer OSS product)

https://github.com/ameba-proteus/proteus-monitor-agent

Page 48: Jvm operation casual talks

Proteus-monitor : Real Time OS

Page 49: Jvm operation casual talks
Page 50: Jvm operation casual talks

Cassandra monitor

・Cassandra Resource graph

GrowthForecast(LINE Engineer OSS product) +

yohoushi (DeNA Engineer OSS product)

・opscenter :Datastax Cassandra cluster status monitor

・Pending Checker :

Real Time Cassandra pending monitor

(cyberagent engeneer OSS prodct)

Page 51: Jvm operation casual talks

Opscenter

Page 52: Jvm operation casual talks

GrowthForecast + yohoushi

Page 53: Jvm operation casual talks

Pending Checker

「WebSocketで監視もリアルタイムに」 http://ameblo.jp/principia-ca/entry-11513826700.html

Page 54: Jvm operation casual talks

Pending Checker

Page 55: Jvm operation casual talks

こんな感じでとりあえず

Jolokiaで叩いて

値取ってゴニョる

Page 56: Jvm operation casual talks

ただ、噂によると

一部の監視アプリでは初めからJMXを叩いて監視出来るらしい

Zabbixとか。

Page 57: Jvm operation casual talks

それに切り替えればいいじゃん

Page 58: Jvm operation casual talks

ちょっと宗教上の理由で・・・。

Zabbixを頑張るの大変そうで。

Page 59: Jvm operation casual talks

とりあえずもう少しはCassandra監視はjolikia先生を使って Nagios + GrowthForecast

辺りで頑張ってみる。

Page 60: Jvm operation casual talks

以上です