2017-12-01から1ヶ月間の記事一覧

HeapAnalyzerを使う

なぜかEclipseのMATが手元のMacでうまく動作しないので同様の機能があるIBMのHeapAnalyzerを使う。 IBM HeapAnalyzer 下段の"Download HeapAnalyzer"からダウンロードできる。 2017年12月時点での最新のバージョンは4.5.6。 実行するには java -Xmx12G -jar …

jvisualvmでKubernetesのScalaアプリケーションのチューニング

JVM

GKEで走るScalaアプリのチューニングをjvisualvmでやったので手法をあとで振り返れるようにメモしておく。 要件としては、所与のマシンスペック・台数の範囲内で、スループットを最大化したいというもの。 さらに、RTBなので、安定した高速なレスポンス速度…

Djangoで実行したSQLログ出力したい(デバッグ用途)

トランザクションまわりの挙動を調べるため。デバッグ用途なので、プロダクションで動かす想定は不要。 Logging | Django documentation | Django https://docs.djangoproject.com/en/1.8/topics/logging/ Django ORM の SQL を出力する方法まとめ - akiyoko…

Macでポートフォワード

今回のケースでいうと、Kubernetes内のPodにローカルからJMXにつないでjvisualvmを使ってチューニングすることが多かったのだが、下記の記事でやったように127.0.0.1のホスト指定が使えないケースが出てきてしまった。 road288.hatenablog.com -Djava.rmi.se…

[Kubernetes][JMX] Kubetenetesで動作するコンテナにjmxで接続する

stackoverflow.com 基本的にはここの通り。 Kubernetesの中で動くPodにJMXでつないで様子をみたいときがある。 そういうときは、まずPod名を調べて、kubectlコマンドでポートフォーワードして、jvisualvmなどのコマンドを使えばOK。 例えばJMXが7000番ポート…

ListのListで、前後の差分のListをつくる

状態遷移の記録をしたいとき、例えばこういうリストがあるときに @ val l = List(List(1, 2, 3, 4, 5), List(3, 4, 5), List(5)) 5個あった要素が、3個になり、1個になった、という遷移を、 2番目の処理で1と2が落ち、 3番目の処理で3と4が落ちた というよう…

nginx-backend間でKeepAliveする

nginxをフロントにおいて、バックエンド(upstream)にリバースプロキシするというのはよくあるけど、nginx - upstreamでkeepaliveさせるには設定がいる。数年前にやっていたのに忘れていたのでメモ。 公式のドキュメントはこちら。 Module ngx_http_upstream…