- PR -

asp.netでout of memory exception

投稿者投稿内容
BLACKGUM
常連さん
会議室デビュー日: 2004/12/24
投稿数: 23
投稿日時: 2005-01-24 11:08
こんにちは 助けてください。

ASP.NET(VB.net)でWebサイトを立ち上げています。
(.net framework 1.1)
本番初日out of memory exceptionでIISダウンが頻発しています。

負荷による原因ではないかと漠然とは理解していますが、
具体的にはどんな原因が考えられるのでしょうか?


[ メッセージ編集済み 編集者: BLACKGUM 編集日時 2005-01-24 11:13 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-01-24 12:00
引用:

本番初日out of memory exceptionでIISダウンが頻発しています。
負荷による原因ではないかと漠然とは理解していますが、
具体的にはどんな原因が考えられるのでしょうか?



そんなに負荷がかかっているのか、検証しましたか? (^-^;)

# これだけでは、何とも言えないような気が...
_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-01-24 12:28
引用:

ASP.NET(VB.net)でWebサイトを立ち上げています。
(.net framework 1.1)
本番初日out of memory exceptionでIISダウンが頻発しています。



私はそういう状況になったことがないので、すぐに解決となる回答は出せません。申し訳ないです。

メッセージ通りに、単にメモリーを使い尽くしたのかもしれません。
当然、この辺調査してるでしょうから、なにかわかったら書き込んでいただけるとありがたいです。
プログラムに問題があるということも考えられますしね。オブジェクトを作りまくって、データ保持しまくって、大勢が接続にくると、かなりメモリー使っちゃいますから。

初日ですか。テストで拾えなかったのは不運でしたね。


_________________
たつごろー http://www.codeseek.net
MCSE MCSD.NET、MCDBA、MCSA、MCAD
Oracle Master Platinum 9i、Oracle Master Linux+

[ メッセージ編集済み 編集者: たつごろー 編集日時 2005-01-24 12:32 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-24 12:41
引用:

BLACKGUMさんの書き込み (2005-01-24 11:08) より:
本番初日out of memory exceptionでIISダウンが頻発しています。

負荷による原因ではないかと漠然とは理解していますが、
具体的にはどんな原因が考えられるのでしょうか?


メッセージを信じるなら単純にメモリ不足なんじゃないですか?
Session変数に何も考えずに巨大なオブジェクトを格納しまくっているとかありません?
いずれにせよメモリ不足の原因をコードレベルで突き詰めていくしかないような気がする。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
BLACKGUM
常連さん
会議室デビュー日: 2004/12/24
投稿数: 23
投稿日時: 2005-01-24 12:55
どうもセッションを張るときに、
DBの内容を大量にメモリーに格納しているようです。
そしてセッションタイムアウトを120分にしているため、
かなりの数のセッションが張りっぱなしになっているようです。

B2Bですが利用者の顔が見えないので暗中模索です。

目先の対応として、セッションタイムアウトを
ひとつのサブシステムは10分、もうひとつは30分にして再起動させ、
様子を見ています。

同時ユーザー数を20と設定してテストしていたのですが、
画面を上げっぱなしの場合を考慮していなかったようです。

物理的にはメモリーはあまっているようですが、
例えば許容メモリーを増やすという力技は出来ないのでしょうか?
BLACKGUM
常連さん
会議室デビュー日: 2004/12/24
投稿数: 23
投稿日時: 2005-01-24 18:47
こんばんは

上記の対応を行った結果、午後からはサーバーが落ちることなく運用できました。

IISの画面を開きっぱなしで運用されている会社が多く
セッションタイムアウトが行われたログは結構頻繁に出ておりました。

今後、セッションタイムアウトの間隔の調整が必要となってきますが
この辺は何を元に判断していけばいいんでしょうか???

SEの感覚で判断していくしかないんでしょうか?
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-01-24 21:38
Session変数の内容はデフォルトだとメモリ上に保持されるけど、SQL Serverに保持するオプションがあるんですよ。これを指定するとSession変数にまつわるメモリ消費量を大幅に減らせます。同時接続数と1セッション辺りのメモリ消費量を考えて、Sessionをメモリ上に保持するのか、SQL Serverに持たせるのかを検討します。よほど小規模なシステムじゃない限り、SQL Serverに持たせる事になるはずです。
http://www.atmarkit.co.jp/fdotnet/dotnettips/186aspsessql/aspsessql.html

と言うわけで、事前に検討していれば、Sessionのタイムアウトで調整すると言う事態にはならないです。
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2005-01-24 21:41
こんにちは。

引用:

今後、セッションタイムアウトの間隔の調整が必要となってきますが
この辺は何を元に判断していけばいいんでしょうか???



セッションタイムアウトの間隔を調整するより、根本的な原因となっている

引用:

DBの内容を大量にメモリーに格納しているようです。



を改善できるか考えていった方がよいです。どういった情報をセッションに格納しているかわかりませんが、たとえば一覧データがあった場合、すべてのデータをセッションに格納しようとせず、ページ単位に都度DBへ取りに行くなどの工夫が必要です。

またセッションタイムアウトは、サーバーリソースを開放するという点とは別に、セッション盗用を防止するなどのセキュリティ面からも考えなければいけません。
参考URL
http://www.ipa.go.jp/security/awareness/vendor/programming/a05_03_main.html

スキルアップ/キャリアアップ(JOB@IT)