2012-03-06 13 views
-1

NHibernateに切り替わった後に他の誰かがCPUスパイクを持っていませんか?Asp.netアップグレード後のNHibernate CPUパフォーマンス

約2年前にNHibernateを使用するように切り替えました。それ以来、私たちは60〜80近くのCPUを使ってサーバを稼働させている問題を抱えていました。また、メモリ不足の問題もありました。

Weveは一貫してクエリを最適化するように指示されています。限られた成功しかなかった。私が最近NHibernate 2.1から3.2にアップグレードしてから、CPUの改善が見えてしまうまではありませんでした。それは平均60%から約30%に減少しました。私は驚いていた、私は、NHibernateをアップグレードすることは、まったく限定的な改善しかもたらさないという専門家を多くの人が考えていると言われた。

私の質問です。他の誰かがNHibernateのCPUスパイクに気づいて、メジャーバージョンのアップグレードを行った後に改善が見られましたか?そして、最後に、新しいバージョンのパフォーマンスがどうしてそんなに優れているのでしょうか?私はNHibernate 3がlinqのためのより良いサポートを持って知っていると私のクエリの約70%がLinqを使用するので、私はより良いperformaceを見ている理由の一部かもしれないと私の推測です。

また、誰も私がすでに行っているdllをアップグレードする以外に、より良いCPU性能を生み出すためにNHibernateがどのように楽観できるかについてのアイディアを持っていますか?

私は現在NHibernate 3.2を実行しており、流暢NHibernate 1.2はそれぞれ2.1と1.0からアップグレードされています。

+0

DBとWebサイトは同じサーバーにありますか? – Rippo

+0

このSQLサーバーもありますか? – Rippo

+0

Windows Server 2003、別のサーバー上のDB、SQL Server 2005.DBサーバーは比較的安定しており、CPUのスパイクはありません。 – matwonk

答えて

3

あなたが私がお勧めしようとしているのと同じように言われていると思われますが、すべての可能性を見て割引してください。

Weve consistently been told to optimize our query - 疑問は、常にORMによって生成されたSQLまたはDBがクエリを実行するのにかかる時間のいずれかにあります。これは適切なアドバイスであり、以下の方法でこれを反証しなければなりません。

まず、1週間実行するライブデータベースサーバーにtraceを設定します。これが完了すると、インデックスやSQL関連の問題に関する提案を得ることができます。

2番目に、私の開発用ボックスにNHProfが立ち上がり、大量に使用されているページや、NHibernateの裏で何が起こっているのかを知るためのデータベースの移動が多いページに対して、いくつかのストレステストを実行します。 NHProfは様々な問題について助言します。 n + 1、無制限の結果、返される行の数が多すぎます。また、結合が多すぎるクエリなどもあります。このツールは、SQLサーバーとコード間のギャップを埋めるために非常に貴重です。

この演習の後、特定の問題を修正する方法やキャッシングを紹介したり、NHUserグループに投稿できる貴重なフィードバックをあなたに提供することができない場合は、アイデアがあります。

何時も何万人ものユーザーがNHibernateを使用していると思うとします。私は数年前からNHibernateを使っていましたが、NHusersグループに加入しています。以前はCPUスパイクの問題は見ていませんでした。常にそれはいずれかになることが判明しました。 SQLが生成され、データベースが圧迫されているか、大量のレコードセットが水和されている

+0

情報ありがとうございます。私はプロファイラーとSQLトレースにチェックインします。ホストしている他のサーバーでCPUスパイクの問題は発生していません。ちょうどこのサーバーと他のものとの違いは、他のものはNHyrbinateを使って約20のサイトを持っているということです。これについてはNHybrinateを使って約510のサイトがあります。基本的に同じコード、サイトごとに異なるデザイン。 – matwonk

+0

Rippo、複数のAjaxリクエストを同時に起動すると問題が発生します。これらのそれぞれには、作成されたセッションがあります。これは悪い習慣ですか?もしそうなら、ソリューションをお勧めしますか? (質問があります: http://stackoverflow.com/questions/14615216/moving-from-ef-to-fluent-nhibernate-memory-leaks-architecture – Chazt3n

関連する問題