Apachのチューニングについて

Apachのチューニングについて

by 沢村 英二 -
Number of replies: 5

お世話になります。Apachのチューニングについてお教え頂きたいと思います。

20数名程度の講義でmoodleを初めて使用した際の現象です。
・URLを入力して一斉ログイン(正常にログイン可)
・教材のパワーポイントを一斉に開く
・各自パワーポイントで学習
・1時間後、パワーポイントからIEへ切り替え、戻るボタンでmoodleの前のページに戻ろうとすると「セッションタイムアウト」のため、ログイン画面が表示
・再度ログインして、フォーラムに入ろうとするとタイムアウトとなりページが表示できませんとなる
・再度、URLを入力するとログイン画面すら表示されなくなる
・Apach再起動により、ログイン画面表示可能となりフォーラムへの書き込みも可能となる(20数名が同時に書き込んでも問題無し)

ここで、質問ですがセッションを2時間くらい保てるようにしたいのと、20名程度が同時にアクセスしてもApachを再起動せずにすむよう、チューニングの方法をお教え頂きたいと思います。

同一スイッチ、同一セグメントのサーバでは同時に50名以上の学生が使用しても問題ないためネットワーク的には問題ないと思われます。
windows用のmoodleをインストールしてからApachやMysqlの設定はデフォルトのままです。

OS:WindowsXP SP3
Apach:2.2.11
PHP:5.2.9
moodle:1.9.11
fs_moodle:4.10.03

以上、ご教授お願い出来ればと思います。

Average of ratings: -
In reply to 沢村 英二

Re: Apachのチューニングについて

by Takayuki ISHIKAWA -
Picture of Developers

Apache の tuning ではなく単なる moodle 上の設定ですが、管理者で log in して「サーバ」→「セッションハンドリング」→「タイムアウト」を長くしてみてはどうでしょうか (最大で「4時間」という設定があります)。

それと、話は本筋から外れますが、「戻るボタンでmoodleの前のページに戻ろうとする」という操作は好ましくありません。moodle が stateless な system だったら「戻る」操作を行ってもよいのですが、moodle は stateful な system ですので、「戻る」操作はおかしな状態を引き起こします。もし学生が moodle 上で「戻る」操作を行っているところを見つけましたら、「moodle 上では『戻る』操作を行ってはいけません」と諭してあげるのがよいと思います。

また、PowerPoint file は「リソースの追加」→「ファイルまたはウェブサイトにリンクする」を用いて moodle 上に置いているものと思われますが、その際に「ダウンロードを強制する」を check しておきますと、画面は遷移せずに PowerPoint file のみを download できますので、学生が混乱しにくくなります。ぜひお試しください。

もし沢村さんが MySQL に log in できるのでしたら、以下の SQL 文によってその moodle 上の全ての PowerPoint files を「ダウンロードを強制する」状態に変更できます。(moodle 1.9.11 の場合限定。また、MySQL の中身を直接操作するので、SQL 文の意味が分からない場合はお勧めしません。)

update mdl_resource set popup='', options='forcedownload' where type = 'file' and reference like '%.pptx';

Average of ratings: お役立ち度: ★★★★★★★ (1)
In reply to Takayuki ISHIKAWA

Re: Apachのチューニングについて

by 沢村 英二 -

ISHIKAWA様

ご回答ありがとうございました。

セッションはデフォルトのまま、2時間の設定になっておりました。
「戻る」ボタンでの操作、今後は注意するように致します。
「ダウンロードを強制する」については検討してみます。
SQLの操作については不安がありますので、別の方法で検討致します。

In reply to 沢村 英二

Re: Apachのチューニングについて

by Tatsuya Shirai -

ApacheのKeepAlive関係の話とごちゃまぜになっているかも知れませんね.
http://www.atmarkit.co.jp/flinux/rensai/apache16/apache16b.html

石川先生の仰るように,ブラウザの「戻る」は止めた方が良いですね.
画面上のナビゲーションバー(ここですと,Home→マイコース→Japanese…)を使うか,画面下のフッターにある地味な四角いボタン(コース名)を押してコースに戻るようにした方が良いでしょう.

fs_moodleではポップアップするウィンドウには極力,「閉じる」ボタンを追加してありますので,もしポップアップウィンドウでしたら「閉じる」ボタンで閉じると良いですね.Windowsの×ボタンでウィンドウを閉じても良いですが.そうしないとMoodleのウィンドウが増殖して行き,色々と不健全な状態になる恐れがあります.

セッションタイムアウトはApacheでは無く,Moodleが表示しているのですよね? でしたら設定の変更はMoodleの側とブラウザにあるでしょう.ログインしたセッションの管理はクッキーを用いて行っていますので,ここに不具合がある恐れもあります.

もしApacheのKeepaliveあたりに先に手を出している場合,もしかしたらApacheが本当にハングアップしているのかも知れません.20個のプロセスが殺されずに生きていると,WindowsのApacheは耐えられないかも知れません.サーバのタスクモニタで確認して下さい.Apacheのタスクがズラズラと沢山表示される場合,システムは不安定になります(Windowsの場合).

In reply to Tatsuya Shirai

Re: Apachのチューニングについて

by 沢村 英二 -

白井様

ご回答ありがとうございます。

「戻る」ボタンは以後、気つけるようにいたします。

セッションタイムアウトはmoodle側で表示されますので、moodleとCookieによる何らかの不具合かと思われます。
セッションハンドリングも2時間の設定になっているため、それ以外の部分を見直してみます。

Keepalive等のApacheの設定変更は行っておりません。お教え頂いたURLを参考にチューニングを検討して見ます。

In reply to 沢村 英二

Re: Apachのチューニングについて

by Tatsuya Shirai -

 Moodle側のセッションの不可解なタイムアウトは,実は私もたびたび遭遇しています.以前はWindowsをサーバに用いていたのですが,いまはCentOSをサーバOSにしようしています.それでも発生します.たとえばWikiやフォーラム投稿の長文,とは言っても30分程度,を書いていて,いざ書き込もうとするとログイン画面に飛ばされてしまい,ああ,30分の努力が水の泡.あるいは課題をクイック評定で評価とコメントを入力して,やっと全部終わったぁ!と更新したらログイン画面に.フォーラム投稿ならば書き込みを行う前に自分で書いた文章を全文選択+コピーしておけば対処できますが,クイック評定の場合はそうはいかない.と言う訳で課題をクイック評定する場合は10名以下単位で更新を行っています.

 とはいえ,沢村さんの仰るように,タイムアウトした後にApacheを再起動しなくてはならない事態は,サーバOSをCentOSに変えてからはほとんど発生していません.ただ,Windowsの頃は時々ありまして,情報処理センターから自分の部屋まで再起動しに走ったことが何度かあります.やはりWindowsのApacheは安定性に関しては多少,難ありですね.

 タイムアウトの件は仕方が無い,と割り切るとして,Apacheが不安定になる問題だけは何としても回避したい.二つ,方法があります.一つはApacheの設定を変更する方法です.MaxRequestsPerChild を設定することで,プロセスがある回数以上のアクセスを受けたら再起動させる.ただ,Windows版では何か制限があったかも知れませんし,それほど効果が無かったような印象があります.でも再現性の高い現象でしたら,一度,この設定について調べ,試してみては如何でしょう.
 もう一つは,Apache(httpd.exe)のサービスを定期的に強制的に再起動させることです.かなり乱暴な方法ではあります.たとえばこちらのページにあるように,httpd.exeを再起動するバッチファイルを作成し,それをサービスでスケジュールを設定して(1時間ごとに,など)起動させます.パフォーマンスは落ちるかも知れませんし,もしかしたら不具合が出るかも知れません.

 なお,Moodle側のセッションタイムアウトの件ですが,沢村さんの所ではかなり高い確率で再現しますよね.本当はこちらの原因を解明して対処すべきなのですけれども…授業に支障がでることをまず防がなくてはいけないですね.何か,原因について思い付くことがあったらまた書き込んで下さい(たとえば実は二つのMoodleサーバを行ったり来たりしている,二つのタブを使って同時に1台のPCからアクセスしている,IEとFirefoxを1台のPCで使ってMoodleサイトにアクセスしている,特殊なセキュリティ対策のソフトウェアを使っている,など).あと,問題が発生しているPCのOSとウェブブラウザの種類とバージョン(IE6ということは無いと思いますが),なども.