高性能なプログラム処理を解析するErlang性能分析ツール

  1. ホーム
  2. >
  3. 技術レポート
  4. >
  5. Erlang性能分析ツール

技術レポート

「TripletaiL」開発フレームワーク

「TripletaiL」開発フレームワーク
ユミルリンク10年の歴史と共に

Erlang性能分析ツール

Erlang性能分析ツール
高い要求が生み出した性能分析ツール

高速クロス集計インデックス

高速クロス集計インデックス
求められたハードルは100万規模

MTA(MessageTransferAgent)

MTA
(MessageTransferAgent)
大量メール配信の高速化に挑む

SMTP/DNSシミュレーションツール

SMTP/DNSシミュレーションツール
配信性能の鍵はここにある

「TC + WAL」ストレージエンジン

「TC + WAL」ストレージエンジン
ハイパフォーマンスを極めろ

最新情報をお届けします ユミマガ

Erlang性能分析ツール 高い要求が生み出した性能分析ツール

Erlang性能分析ツール

プログラムのどの処理に時間がかかっているか分析するためのソフトウェア。
「Erlang(アーラン)」はプログラム言語名。

PERSONALITY

メール配信システム「Cuenote® MR」の文章生成エンジンやC言語部分の調査・ライブラリ作成を主に担当している。

複雑な処理に既存の解析ツ―ルが追いつかない!

ユミルリンクは、2008年5月にリレーサーバー「Cuenote® SR-S」を公開しました。送信速度を制御し、効率の良い高速配送を実現させるためには、性能分析調査が必須でした。既存の性能分析調査ツールもありましたが、そのツールを使うこと自体が大きな負荷になってしまって、私たちの目指す高い性能を実現するための調査ができなかったのです。

目指すクオリティのために必要なら作る
「Erlang (アーラン)性能分析ツール」は、このような背景の中で生まれました。グラフ出力によってビジュアル的にボトルネックを見て取ることができます。「性能分析ツール」とは、動作中のプログラムのどの処理に時間がかかっているのかを調べるプログラムです。プログラムの動作を継続したまま、各種の状態を確認することができます。
Erlang言語には標準で性能測定ツール(プロファイラ)が付属していますが、測定の負荷が高く、高負荷な状態のアプリケーションで測定が正確に行えない問題がありました。そこで、アプリケーション速度のチューニングを正しく行うために、ユミルリンクで独自にErlang言語用の高精度な性能分析ツールをつくりあげてしまおうと思い立ったのです。
コード同士の組み合わせに難航
開発にあたって難航したポイントを挙げたらキリがないですが、一番は、 ErlangVM(Erlang実行環境)の駆動系実装部分への追跡コードの埋め込みですね。
先ず、プロファイル処理がErlangコードの実行処理を阻害しないように、VMの実装系であるC言語レベルで完結させるように設計しました。そのため、ErlangのVM自体のコードにプロファイル用のコードをかみ合わせなければならず、試行錯誤しました。その他にも、VM内でのスタックや実行位置の判定やスレッドをまたがって実行されたときの追跡など、苦心した点はたくさんあります。
「確かな高性能製品を提供し続けたい。」
私たちは、このように、必要に応じて言語本体に手を加えることも行います。アプリケーションの性能を向上させ、ハードウェアへの投資を低コストに抑えたサービスを提供することが顧客満足につながると考えているからです。
いま、ユミルリンクでは、「Cuenote® SR-S」以外にも、「Cuenote® MR」の一部の処理や紙copi®ネット連携の同期サーバーなどでErlang言語を利用しています。性能分析調査を踏まえているからこそ、私たちは、「ユミルリンクの製品は高性能である」と言えるのです。