ディスカッション

答えを見つけ、質問し、Alteryx の専門知識を共有してください。

Alteryx Server上で実行すると時間がかかる

Chikuma_Murakami
メテオロイド

ローカルPCのAlteyx Designerで実行すると、30分程度で完了するワークフローがあります。

それをAlteryx Server上で実行すると、5時間かかって終了しました。

調査のためにAlteryx Serverがインストールされているサーバマシン上のDesignerで実行したところ、15分で完了しました。つまり、サーバマシンのスペックには問題ないことが分かりました。

 

ワークフローの内容としては、あるDBからテーブル一覧を取得し、その後マクロ内で各ビューをyxdbにして保存するというものです。

 

サーバマシン上のDesignerで実行した際、パフォーマンスプロファイリングを有効にしたところ、マクロの部分が一番時間がかかっていました。

Chikuma_Murakami_3-1755864340905.png

 

Chikuma_Murakami_2-1755864299856.png

 

マシンのスペックに問題が無いのにもかかわらず、Alteryx ServerのGUIから実行すると遅くなるのはなぜなのでしょうか。

アドバイスいただけますと幸いです。

1件の返信1
gawa
16 - Nebula
16 - Nebula

@Chikuma_Murakami GUIで実行する場合、サーバマシン上のDesignerで実行するよりも処理の時間は長くなります。ですが、15分➡5時間は流石に何かがおかしい感じがします。

長くなる理由は、GUIでJob実行する際は以下のような処理がなされるからです。Designerで実行する場合は④のみですので、①~③が追加でかかるイメージです。

①キューに入る

②設定したJob同時実行可能数の既存Jobが走っている場合、終わるまで順番待ちする

③Mongo DBからWFのyxzpファイルをロードし一時フォルダに展開する

④WFを実行する

※WFを実際に処理するサービスは”Engine”になるのですが、ServerではGallery->Controller->Worker->Engine、DesignerではDesigner->Engine、とEngineサービスを走らせるまでの経路が異なります。細かい話ですが・・・

 

従いまして、まずは5時間かかった理由が、「①・②において、キューで長いこと待たされていなかったか?」、「③においてWFのyxzpが異常にファイルサイズ重くなっていないか?(マクロ内のyxdb出力をアセットに含めてServerにあげていると、結構重たいと思います)」といった点が最初の確認ポイントかと思います。

また、一度マクロ内のyxdb出力を無効にした状態で実行し、実行時間に差が出るか見てみるのもいいと思います。これにより、ボトルネックがDB接続なのかyxdb出力なのか、ある程度切り分けできそうです。

 

可能でしたら、Engine Logを見てみるのもトラブルシューティングで有用です。Serverのシステム設定はデフォルトでEngine Logは無効になっていますので、デフォルトのままでしたら、Engine Logの有効化をお勧めします。(公式サポートに問い合わせるときにログがあると、先方も対応しやすいようです)

 

また、Serverの構成がマルチノード(Workerノードを複数ホストで運用)の場合、Workerノードとデータソース間のネットワークのレイテンシーが律速になっていることが考えられます。貴社のServer構成がわからないため、いったん詳細は省きますが、マルチノード構成をとっている場合は、その旨教えてください。

 

トップのソリューション投稿者