Jvm operation casual talks

7,026
-1

Published on

Published in: Technology
0 Comments
11 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,026
On Slideshare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
16
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Jvm operation casual talks

  1. 1. JVM Operation Casual Talks Cassandra監視で やっていること
  2. 2. 自己紹介 id:oranie @oranie 株式会社 Cyberagent 所属
  3. 3. 注意:Cassandraの項目などは Ver1.1をベースにしています。
  4. 4. 運用しているシステムについて
  5. 5. サイバーエージェント スマートフォンプラットフォーム s.amebame.com
  6. 6. SPOFの無いマルチマスタ ノード追加でスケールする 処理能力とデータ保持量 スキーマレスで柔軟な データ操作
  7. 7. 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
  8. 8. Latency Read / avg 4ms. Write / avg 0.1~0.7ms
  9. 9. Cluster HW spec CPU : 16 ~ 24 core (HT enable) Memory : 64GB Disk : SAS 600GB RAID 10 ※一部テスト的にSATAだったりSSD入れて みたりのレンジがあった。
  10. 10. Daily Operation
  11. 11. おおまかなまとめ サイバーエージェント 公式エンジニアブログ http://ameblo.jp/principia-ca/entry-11514557323.html
  12. 12. Monitoring 監視
  13. 13. 運用担当当初 Cassandraの監視って何すれば いいの?からスタート
  14. 14. Cassandraにはクエリを投げて MySQLで言う SHOW STATUS hogehoge 的な奴は無かった(ハズ)
  15. 15. なにかあってもどこで 性能劣化したかどうかとか 分からない。
  16. 16. とりあえず既存で使っていた JavaアプリのCactiのテンプレ見 る
  17. 17. JVMの GC頻度 ヒープメモリの使い方とか グラフに取っている
  18. 18. これどこに値とか 入っているんだろう?
  19. 19. Mbeansという所に 色々入っていた。 見るのにVisualVMというのが 便利と教えてもらう。
  20. 20. 見てみるとJVMで取れる値と アプリケーション(Cassandra)特 有の値など色々入っていた。
  21. 21. JVMで取れる値 = Linux OSで取れる様な物 アプリ固有の物 = Apacheのmod_statusで取れる 様な物 が入っているので、ひたすら必 要そうな物探す。
  22. 22. で、色々あるのは分かったけど これ結局どうやって値 取っているの?
  23. 23. CactiはSNMPでした。
  24. 24. http://d.hatena.ne.jp/hogem/20121206/1354802392 hogemさんのブログより引用
  25. 25. なんというか・・・ 人類にやさしくない・・・。
  26. 26. これから欲しい値取る時に SNMPで頑張るの・・・ oid調べるのとか面倒くせ。
  27. 27. JMXという違う インターフェイスが ある事を知る
  28. 28. JMX = Java Management Extensions (JMX)
  29. 29. 調べたらJavaで書かないと 無理ゲーくさい
  30. 30. Java…….. ちょっとスクリプト的な奴作っても Nagiosで頻繁に叩くとかの時に 起動コスト高くね?
  31. 31. つーかJavaって 「くるまクラスを作って見よう」 ぐらいしかやった事ねー PerlとかRubyとかPython とかでサラッと書きたい。
  32. 32. そこで社内の人から Jolokia使えば? と教えて貰う。
  33. 33. 簡単に言うとJMXを REST APIインターフェイスに プロキシしてくれるモジュール。 値をJSONで返してくれる。
  34. 34. ex:) http://localhost:8080/jolokia/ read/java.lang:type=Memory/ HeapMemoryUsage に対してGETする。
  35. 35. ex:) { "committed" : 18292736, "used" : 15348352, "max" : 532742144, "init" : 0 } こんな感じ。
  36. 36. とても分かりやすい。 ちょっと整形すればbashでも簡 単に書ける。 PerlならJMX::Jmx4Perlという CPANモジュールも出ている。
  37. 37. 簡単な使い方は同僚の @la_luna_azul が書いた
  38. 38. 死活・閾値監視
  39. 39. Nagios + Jenkins + Perl Script to mail & Push notification
  40. 40. 死活監視系概要
  41. 41. 閾値監視系概要
  42. 42. トレンド監視
  43. 43. 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
  44. 44. Proteus-monitor : Real Time OS
  45. 45. 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)
  46. 46. Opscenter
  47. 47. GrowthForecast + yohoushi
  48. 48. Pending Checker 「WebSocketで監視もリアルタイムに」 http://ameblo.jp/principia-ca/entry-11513826700.html
  49. 49. Pending Checker
  50. 50. こんな感じでとりあえず Jolokiaで叩いて 値取ってゴニョる
  51. 51. ただ、噂によると 一部の監視アプリでは初めから JMXを叩いて監視出来るらしい Zabbixとか。
  52. 52. それに切り替えればいいじゃん
  53. 53. ちょっと宗教上の理由で・・・。 Zabbixを頑張るの大変そうで。
  54. 54. とりあえずもう少しはCassandra 監視はjolikia先生を使って Nagios + GrowthForecast 辺りで頑張ってみる。
  55. 55. 以上です
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×