Skip to main content
QUICK REVIEW

[論文レビュー] Automated Reasoning and Detection of Specious Configuration in Large Systems with Symbolic Execution

Y. Charlie Hu, Gongqi Huang|arXiv (Cornell University)|Oct 4, 2020
Advanced Software Engineering Methodologies被引用数 5
ひとこと要約

この論文では、コードレベルの実行パスとさまざまな設定・入力におけるそのパフォーマンスへの影響を分析することで、大規模システムにおける無意味な設定(有効ではあるがパフォーマンスを著しく低下させる設定)を検出するシンボリック実行ベースのツールVioletを提案する。Violetはパフォーマンス影響モデルを構築し、MySQL、PostgreSQL、Apache、Squidなどのシステムで、17件の実際の無意味な設定のうち15件を事前に特定し、さらに9件の未知の無意味な設定を発見した。

ABSTRACT

Misconfiguration is a major cause of system failures. Prior solutions focus on detecting invalid settings that are introduced by user mistakes. But another type of misconfiguration that continues to haunt production services is specious configuration--settings that are valid but lead to unexpectedly poor performance in production. Such misconfigurations are subtle, so even careful administrators may fail to foresee them. We propose a tool called Violet to detect such misconfiguration. We realize the crux of specious configuration is that it causes some slow code path to be executed, but the bad performance effect cannot always be triggered. Violet thus takes a novel approach that uses selective symbolic execution to systematically reason about the performance effect of configuration parameters, their combination effect, and the relationship with input. Violet outputs a performance impact model for the automatic detection of poor configuration settings. We applied Violet on four large systems. To evaluate the effectiveness of Violet, we collect 17 real-world specious configuration cases. Violet detects 15 of them. Violet also identifies 9 unknown specious configurations.

研究の動機と目的

  • 生産環境で一般的な、微妙なコードパスの相互作用によって引き起こされるパフォーマンス劣化を引き起こす有効な設定(無意味な設定)の課題に対処すること。
  • 手動チューニングやブラックボックステストでは、特定の入力や環境要因下での設定由来のパフォーマンス劣化を検出できないという限界を克服すること。
  • 設定パラメータのパフォーマンスへの影響、その相互作用、および入力依存性をコードレベルで体系的に分析する解析手法を開発すること。
  • 障害を引き起こす前に、微妙で追跡困難なパフォーマンス問題を効果的に検出できるスケーラブルで正確かつ拡張可能なソリューションを構築すること。

提案手法

  • Violetは、設定パラメータと入力値に影響を受けるコードパスを探索するための選択的シンボリック実行を採用し、パフォーマンスに深刻な影響を及えるパスを引き起こす制約を同定する。
  • S2Eプラットフォームに基づくカスタムトレーサーを統合し、シンボリック探索中に低レベルの実行信号を収集し、パフォーマンス特性をプロファイルする。
  • LLVMに基づく静的解析器により、ソースコード内での設定パラメータとその関係性を特定し、シンボリック実行をガイドする。
  • 異なるパrameterの組み合わせがパフォーマンスに与える影響を比較・分析することで、設定パフォーマンス影響モデルを構築する。
  • チェックヤーはこのモデルを用いて、新しい設定やデプロイメント環境においても無意味な設定を継続的に検出する。
  • プログラム解析と標的化されたシンボリック実行により、パス爆発と効率性の課題に対処し、オーバーヘッドを低減しスケーラビリティを向上させる。

実験結果

リサーチクエスチョン

  • RQ1シンボリック実行を用いて、有効ではあるが予期しない遅延を引き起こすパフォーマンス劣化を引き起こす設定を効果的に検出できるか?
  • RQ2設定パラメータ、入力データ、環境要因の組み合わせがパフォーマンスに与える影響を、システムが自動的にどのように分析できるか?
  • RQ3大規模システムのパフォーマンス効果を分析する際、シンボリック実行におけるパフォーマンスオーバーヘッドとパス爆発を軽減する技術は何か?
  • RQ4このような解析的手法が、手動分析やブラックボックステストで見逃された現実世界の無意味な設定事例をどの程度検出できるか?

主な発見

  • Violetは、生産環境のインcidnetから収集した17件の実際の無意味な設定事例のうち15件を正常に検出できた。
  • ツールは9件の以前未知の無意味な設定を発見し、そのうち7件は開発者によって有効なパフォーマンス問題として確認された。
  • Violetは、MySQL、PostgreSQL、Apache、Squidの4つの大規模システムにおいて、合計471の設定パラメータのパフォーマンス影響モデルを導出した。
  • 入力や設定の変化に応じたコードレベルの実行パスとそのパフォーマンス結果を分析することで、静的解析やブラックボックステストに比べて優れた性能を発揮した。
  • シンボリック実行に基づくアプローチは、網羅的テストによるパフォーマンスチューニングよりも正確でノイズが少なく、新しいデプロイメント環境への一般化が可能である。
  • シンボリック実行とプロファイリング、静的解析の統合により、従来の手法では検出できない微細なパフォーマンスレグレッションのスケーラブルな検出が可能になった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。