どうもオーマイニュースの直近のメンテナンスによってサーバーのセッションタイムアウトの値が変更されたようだ。
従来は60分であったのが、30分に変更された模様。実際にはKeep-Aliveが働いている数分延長されてもう少し長く持つかもしれない。
アナウンスしろよ!(怒)
少なくとも、記事を投稿する画面には60分と明記されている。
それ以前にセッションタイムアウトの時間をなぜ変更したのか激しく疑問。
セッション数そのものは余程とんでもない数値でない限りそれほど負荷にはならないはず。
perlの場合の例は探せなかったので、代わりにjavaの場合の参考としてリンクを示す。
『Tomcatにおけるセッション数とメモリ消費量の推移調査』
単なるセッション維持だけなら1セッションあたり2Kbyteにも満たない。
実際には幾ばくかのデータを詰むから必要メモリ量はもっと多くなるだろうが、1セッションあたり100Kbyteも見積もっておけば十分過ぎるだろう。perlの場合にも事情はそれほど変わらないと思われる。
さらに言えば、メモリ使用量のみを見てもそれがパフォーマンスに直接影響するとは限らない。実際にページフォルトが頻発するのを観測したとかの理由でもない限りね。仮想記憶というものがなぜ成立しているかを考えればわかるでしょ?
他の理由も考えられる。セッションにDBへのコネクションを詰んでいる場合だ。これは悪手だと思うので、もしこれを行っているならば止めたほうがいいと思う。
単純にリクエスト毎にコネクションを張り直すほうがマシだと思うし、高速化を狙うならちゃんとしたコネクションプールを使うべきだろう。
と思ったが、少し調べた範囲ではperlやphpでコネクションプールを使うのは難しいようだ。
でも、セッションにDBへのコネクションを詰むのが悪手であるという意見には変わりはない。下記リンクを参照の事。
『コネクションプーリングの話』
俺としては「勘で変更しました」なんじゃないかなと思ってしまう。やれやれ。
他にできる事は?
このブログのエントリ『オーマイニュースでサーバー混雑時にそれをすり抜ける方法』でも少し触れているのだが、働かないキャッシュが入っている(squid?)模様なので、これを外せば少しは軽くなるのではないだろうかと思う。
キャッシュが入っているとすれば、無駄にディスクに書き込んでいるだけだと思われる。
実際に何らかの理由で本当にメモリが不足しているならメモリを追加すべき。
手間をかければ、もう少しいろいろ考えられるがそれらについては既に以前のエントリに書いた。
いずれにしても・・・
効果があるかどうかちゃんと検証して、計画を立ててメンテナンスしてください。そうすれば、冒頭に書いたアナウンスが必要な事には速攻気づくはず。
思いつきでやっても結局無駄になることが多いと思う。
急がば廻れです♡
従来は60分であったのが、30分に変更された模様。実際にはKeep-Aliveが働いている数分延長されてもう少し長く持つかもしれない。
アナウンスしろよ!(怒)
少なくとも、記事を投稿する画面には60分と明記されている。
それ以前にセッションタイムアウトの時間をなぜ変更したのか激しく疑問。
セッション数そのものは余程とんでもない数値でない限りそれほど負荷にはならないはず。
perlの場合の例は探せなかったので、代わりにjavaの場合の参考としてリンクを示す。
『Tomcatにおけるセッション数とメモリ消費量の推移調査』
単なるセッション維持だけなら1セッションあたり2Kbyteにも満たない。
実際には幾ばくかのデータを詰むから必要メモリ量はもっと多くなるだろうが、1セッションあたり100Kbyteも見積もっておけば十分過ぎるだろう。perlの場合にも事情はそれほど変わらないと思われる。
さらに言えば、メモリ使用量のみを見てもそれがパフォーマンスに直接影響するとは限らない。実際にページフォルトが頻発するのを観測したとかの理由でもない限りね。仮想記憶というものがなぜ成立しているかを考えればわかるでしょ?
他の理由も考えられる。セッションにDBへのコネクションを詰んでいる場合だ。これは悪手だと思うので、もしこれを行っているならば止めたほうがいいと思う。
単純にリクエスト毎にコネクションを張り直すほうがマシだと思うし、高速化を狙うならちゃんとしたコネクションプールを使うべきだろう。
と思ったが、少し調べた範囲ではperlやphpでコネクションプールを使うのは難しいようだ。
でも、セッションにDBへのコネクションを詰むのが悪手であるという意見には変わりはない。下記リンクを参照の事。
『コネクションプーリングの話』
俺としては「勘で変更しました」なんじゃないかなと思ってしまう。やれやれ。
他にできる事は?
このブログのエントリ『オーマイニュースでサーバー混雑時にそれをすり抜ける方法』でも少し触れているのだが、働かないキャッシュが入っている(squid?)模様なので、これを外せば少しは軽くなるのではないだろうかと思う。
キャッシュが入っているとすれば、無駄にディスクに書き込んでいるだけだと思われる。
実際に何らかの理由で本当にメモリが不足しているならメモリを追加すべき。
手間をかければ、もう少しいろいろ考えられるがそれらについては既に以前のエントリに書いた。
いずれにしても・・・
効果があるかどうかちゃんと検証して、計画を立ててメンテナンスしてください。そうすれば、冒頭に書いたアナウンスが必要な事には速攻気づくはず。
思いつきでやっても結局無駄になることが多いと思う。
急がば廻れです♡
サーバーセッション=DBコネクションとしているという俺の仮説が正しいとすると、Cookieを受け付けないクライアントで連続アクセスすると重くなるのかもしれない。
そうだとすると、エントリ中の2番目のリンク先を見る限り簡単に直せそうなのでご一考を。>オーマイニュース
直近に行なった何かの数値(実アクセス数)
2007年11月24日(土) 17:49-
総アクセス数:12,761
カテゴリ別内訳(左から総ページ数取得、リストページ取得、各個別記事取得時のアクセス数、および合計)
ニュース :1 + 437 + 8,735 = 9,173
ニュースのたね:1 + 94 + 1,868 = 1,963
Photo :1 + 56 + 1,171 = 1,228
TV :1 + 18 + 378 = 397
バックアップは各個別記事本文のみだけ、と
必要最低限のアクセスしかしないように気を遣ってるつもりですw
最初の頃は「記事一覧に掲載されない隠れた公開記事があるかも」と
絨毯爆撃を仕掛けていました…>現在は実行していません
個別記事+展開後の市民記者用コメント欄を取得するスクリプトや
(どう言いつくろってもダメだろう)あやしげなものも書いてたりしますが、
さすがに公開&使用は控えています。
>サーバーセッション=DBコネクションとしているという俺の仮説が正しいとすると、
>Cookieを受け付けないクライアントで連続アクセスすると重くなるのかもしれない。
柔軟に対処するつもりです。
最初は自分の方の設定かと思って、いろいろ、弄ってました。
>仲甫さん
あやしげなスクリプト気になります。
#セッションタイムアウトを待つまでもなく
#新規に再接続すれば良いだけの話なので全く問題ありません。
#~6683番、10059番~と分割すれば30分以内におさまりますしね。
>あやしげなスクリプト気になります。
そこらへんに落ちてたものに少し手を加えただけです。
大したものではありませんので、誰でも書けるとおもいますよw
永続的なログインを実装しているところは皆セッション関係を自力で組んでいるか既存のものを改良しているのだろう。
こういう部分を作る機会ってなかなかないから面白いと思うんだけどな~。
検索してみたら「DATA HOTEL」をやってた人だった。
メンテやら細かいシステム改変(?)はオマニーでやってもらってて、
手を出してないのかな?
>永続的なログインを実装しているところは皆セッション関係を
>自力で組んでいるか既存のものを改良しているのだろう。
商用サーバなんていじったことないのでアレですが、
良い感じにハッキング出来た時の充実感は何物にも代え難いですからねw
#先駆者がいない時など手探りでいろいろやってみるしかないわけで。
#何回か人身御供になった経験ありますorz
#うん、コメントやらアドバイスやらをたくさんもらえて今でも感謝してますわ。
#オイラの(ネット/PC関連)スキルの9割は名前も知らない善意の方からいただいたものです。
「匿名だから信用できない」なんて言ってたら今のオイラはあり得ないんだよな…
今更コメントだけど、
セキュリティって観点がまったくないのね・・・。