0

私はあなたが私を助けてくれることを願っている奇妙な問題を抱えています.

私たちの開発サーバーでは、8GB RAM の仮想 x64 インスタンスで IIS 7.5 を搭載した Windows 2008R2 を実行しています。

ここでは、大量の階層データを処理するために ThreadPool.QueueUserWorkItem を使用する WCF メソッドを呼び出します。これは正常に動作し、かなり高速に動作します (270 MB の XML が読み取られ、379 秒以内に 190.035 レコードを生成する処理が行われます)。クライアントは約 250 秒でメソッドの呼び出しを完了します。

Windows Azure での同じ「ワークフロー」は、まったく別のケースです。似ていますが (ラウンド ロビン構成の大規模インスタンス)、Windows Azure はクライアントが切断されると数秒以内に停止します。これは、160.055 レコードのみが書き込まれ、917 秒とはるかに遅いことを意味します。ここでの問題は、2 つの Azure インスタンスでキューに入れる必要がある約 30.000 レコードを見逃していることですが、クライアントの切断時に残りの作業を放棄するようです。

クライアントは通信に HttpWebRequest を使用し、両方のソリューションで .NET 4.0 を実行します。

ここで見逃しているのは何ですか?

この問題に関してご協力いただきありがとうございます。

4

1 に答える 1

0

Windows Azure がこれほど遅いとは想像もできませんでした。そのため、HttpWebRequest を 2 分から 30 分に増やすことで、開発環境と同じデータ ボリュームを達成することができました。

そのため、質問を削除するつもりはありませんが、近日中に Azure に参加する皆さんの参考にさせてください。

Azure (およびその他のクラウド プロバイダー) が未来であることは確信していますが、デンマークから "北ヨーロッパ" までのレイテンシは高く、SQL Azure は OLTP と正規化されたデータベースを扱うときにパフォーマンスを発揮できることをまだ証明していません.

開発 (仮想環境) 299 MB のファイルからの 190.335 レコードは、単一のインスタンスで379秒かかりました

WINDOWS AZURE (北ヨーロッパ) 299 MB のファイルからの 190.335 レコードは、2 つの LARGE インスタンスで1.400秒かかりました

幸いなことに、WCF と ThreadPool は問題なく動作し、特別な考慮事項 (高いタイムアウトを除く) は必要ありません。


明確にするために、299MB のファイルはサーバーへの複数の REST 呼び出しに分割され、次のような形式になっています。

<?xml version="1.0" encoding="UTF-8"?>
<HttpPost absolutePath="A/B/C/D/E/OO">
    <Parameters xmlns="http://somenamespace">
        <A>Package</A>
        <B>100</B>
        <C>Generic</C>
        <D>ReceiverParty</D>
        <E>
            <F xmlns="http://somenamespace">
                <G xmlns="http://somenamespace/Product">Long Text</G>
                <H xmlns="http://somenamespace/Product">1</H>
                <I xmlns="http://somenamespace/Product">PK</I>
                <J xmlns="http://somenamespace/Product">5995</J>
                <K xmlns="http://somenamespace/Product">
                    <L xmlns="http://somenamespace/P/Q">Discount</L>
                    <M xmlns="http://somenamespace/P/Q">1000</M>
                    <N xmlns="http://somenamespace/P/Q">6995</N>
                </K>
            </F>
        </E>
        <OO>
            <O>
                <A>Product</A>
                <B>100</B>
                <C>Generic</C>
                <D>ReceiverParty</D>
                <E>
                    <F xmlns="http://somenamespace">
                        <G xmlns="http://somenamespace/Product">Long Text</G>
                        <H xmlns="http://somenamespace/Product">1</H>
                        <I xmlns="http://somenamespace/Product">PK</I>
                        <J xmlns="http://somenamespace/Product">5995</J>
                        <K xmlns="http://somenamespace/Product">
                            <L xmlns="http://somenamespace/P/Q">Discount</L>
                            <M xmlns="http://somenamespace/P/Q">1000</M>
                            <N xmlns="http://somenamespace/P/Q">6995</N>
                        </K>
                    </F>
                </E>
            </O>
        </OO>
    </Parameters>
</HttpPost>
于 2012-09-10T11:09:50.027 に答える