サーバー過負荷の原因

Trackback Albirexのサイトが503エラー(プログラム過負荷によるサーバーエラー)を頻発するため、やむを得ず別サーバーをレンタルして運用開始して2週間が過ぎた。
エラーに関してさくらサーバーさんに問い合わせのメールを出したところ、こんな返事が返ってきた(要約)。

あなたのサーバを確認したところ、CGIやPHPによる過負荷やアクセス数等に関する制限がかかっていた。いったん緩和するけど、今後同様にサーバに許容範囲を超える過負荷等が発生したら、また制限が設けられる可能性があるよ。

特段アクセス数が多いわけでもないし、負荷がかかるプログラムを使っているわけでもないので、なんでエラーを起こすのか(というか、プロバイダ側からアクセス制限をかけられるのか)、いまいち不思議ではあった。ふと思いついて調べてみると、原因と思われることにぶつかった。これだ。
「条件付きGET」のススメ@Ogawa::Memoranda

PHPファイルなどの動的コンテンツにアクセスした時には、上記の両ヘッダを返されないため、そのままでは条件付きGETが行われません。

簡単に言うと、インターネットの世界では、サーバーにあるデータの更新時刻ととパソコン内にあるデータの更新時刻を比較して、サーバーのデータの方が新しければサーバーからデータを読み込み(条件付GET)、そうでなければパソコン内からデータを読み込む、という仕組みになっている。
ホームページの画面というものは、アクセスするたびにサーバーからダウンロードされるわけではなくて、以前見たときから更新されていないページならば、自分のPCに保存されたデータを読み出して見ていることになるわけだ。そうすることによってサーバーからダウンロードされるデータ量を減らすことができるので、情報の交通渋滞が起きるのを防止できるってわけ。
拡張子が「.html」になっているページは上記のような更新時刻をチェックする仕組みがあるんだが、Trackback Albirexのサイトは各ページの拡張子が「.php」になっているので、そのままでは更新時刻を知ることができない。従って、毎回アクセスするたびにデータのダウンロードが発生するので、「過負荷」状態が発生してしまう。
解決策としては、phpのページにも、htmlページと同様の「Last-Modifiedヘッダ」を付加してやればよいわけで。
その方法が上述ページに記載されております。
さっそくやってみようと思ってるところ。



テスト

トラックバックのテスト
Trackback Albirexへのトラックバックの文字化けが生じていたので、文字化け防止策を施してみました。
gooブログとか、fc2ブログとか、ブログの文字コードがEUC-JPの場合に文字化けが起こりやすいようです。
と言っても毎回化ける訳じゃなくて、時々正常に文字コードを認識できないことがあるようなのです。
タイトルや概要に特定の文字が含まれている場合とか、原因はいろいろ考えられるんですが、まだ特定はできていません。
とりあえず「小粋空間」さんの
Trackback文字化け対処
をやってみました。
うまくいくといいんだけどなー。



nPOP iアプリ版

一般的なメールソフトというと、送受信したメール全体を管理するデータベース的機能が備わっているわけだけど、もっと単純に、今サーバー上にどんなメールが届いてるかチェックしたりするのに便利なソフト。
nPOP
インストール不要で、USBメモリなんかに入れて持ち運べる。ファイルサイズも200KBちょっとと、超軽量。
インターネット環境さえあれば、どんなPCからでも自分のメールサーバーにアクセスしてメールのヘッダや内容を確認できる。これなら、Webメールが用意されていないプロバイダでも、旅行先とかから気軽にメールチェックができるわけだ。あ、もちろん、返信もできますよ。
で、実は、これの携帯版(iアプリ)があったのねん!
i-nPOP
昨日気がついて、さっそく携帯にインストールしてみた。
インストール後にiアプリを起動して、POPメールサーバーのアドレスやアカウントを入力して受信、っと。
はいっ!
会社のサーバーにある自分のメールのヘッダ一覧が取得できました。
見たいメールのヘッダをクリックすると、メール本文が閲覧できまする。
返信ボタンを押すと、返事が書けるね。
でもって、送信を押すと返事を送ることができるんだけど、これはもちろん、携帯からのメールとしてではなく、会社のアドレスからの返信として送信されるんだな、これが。
アカウントが3つまで登録できるので、会社のアドレスと自宅で使ってるプロバイダのアドレスとどっちも登録して、これで携帯でいつでもメールが確認できる状態が整ったわけっす。ああ便利、便利。




便利、なんですけどね。
だんだんネットから離脱できない状態になってしまいそうで、こわいよね。
こわい、こわい。



ゴールデンエイジ

例年、12月と3月は仕事が忙しい。
「新年(あるいは新年度)から新しいシステムを稼動させたい」という、お客様の要望があったりするわけで、それに合わせて作業を組んでいるんだけど、いざ完成目前になって「ここはこうして欲しい」「ここはこうならないか?」と注文がつく。
それが、多少の手直しならいいんだけども、なんとデータベースのデータ構造の基本にかかわる部分に変更を加えざるを得なくなった時なんかは、悲惨なのだよね・・・。

だから最初にあれほど念を押して、「これで、いいですね?!これが基本形になるので、あとで変更はできませんよ!?」と確認したのになあ。人の話を聞いてないんだろうか。いやいや、自分の説明のしかたが悪かったんだろうな。そうだろうな。ショボン

そんなことで、泣きながら仕事をしております。
社内LANを組んでサーバーを立て、webアプリケーションでさまざまな業務処理をしたい、っていうニーズは確実に増えているようなので、なんとかスキルアップして頑張ってゆかねば!40代でもまだまだ進化し続けますよ!ゴールデンエイジだ!w
これまでwebアプリケーションとしては主に「perlでCGI」を使ってきたんだけど、処理速度の問題やデータ管理の堅牢性、今後の応用なども考えて、「php+MySQL」を本格的に導入検討(遅すぎw)。
phpだと便利な関数がたくさんあって、スクリプトがシンプルになる気がする。cgiばっかり書いてきたので、目からウロコです。

PHP 5.0+MySQL 5.0で構築する最速Webシステム



3.33-jaにバージョンアップ

このブログはレンタルのブログシステムではなく、サーバーにMovable typeというソフトウェアをインストールして作成している。セキュリティホールが見つかったりバグがあったりすると、バージョンアップが必要になる。
これまで「3.2」系統を使っていて、「3.3」が出たときにすぐバージョンアップすればよかったんだけど、次々にバグが見つかって「3.31」「3.32」が短い期間に立て続けにリリースされたので、どうせなら、しばらく待ってバグが出尽くしてからアップデートしようと思っていた。
連休で時間もあることだし、便利な機能も追加されたようなので、先日ようやくアップデート。
備忘録として、手順をメモ。
今回はかなり大幅にスクリプトが変更されたそうなので、下記を参考に、上書きではなくクリーンインストールにしてみた。

続きを読む



« 前のページ次のページ »

  •  

    ブログパーツの貼り付け方はこちらへ
  • 月別アーカイブ

  • あいさつ掲示板

  • メタ情報