Code Archive Skip to content Google About Google Privacy Terms
Apacheを起動するときに使う事もある apachectl の -k restart は stop && start ではないので注意しましょう。 ServerLimitやThreadLimitなどの一部の設定は、restart では適用されず、stop && start が必要になります。 apachectl は実はshellscriptで出来ています。中をのぞくと #!/bin/sh .. HTTPD='../httpd' .. start|stop|restart|graceful|graceful-stop) $HTTPD -k $ARGV ERROR=$? ;; と書かれています。restartはhttpdコマンドにそのまま渡されるようです。 そこでhttpdコマンドのドキュメントを読むと詳しくは Stopping Apache httpd http://httpd.apach
ここのところ、お仕事で管理しているシステムで、夜中に負荷が急上昇する事象が発生しており、夜な夜な対応に追われていました。 (このブログ書いている今も、負荷がじわじわ上昇中なんですが・・・) で、いろいろと調査した結果、ようやく糸口がわかってきました。 結論から言うと、ローカルポートなどのネットワーク資源を食いつぶしていたようです。 以下、調べていってわかったことなどのメモです。 トラブルの事象 運用しているのは Apache2.2 + mod_perl2 なwebサーバで、リスティング広告システムの配信系です。 リスティング広告の配信のシステムって一般的にロジックが複雑でいやーな感じなんですが、このシステムもご他聞に漏れずかなりのひねくれ者で、しかもトラヒックは結構多めです。システム全体で、日に1000万〜2000万クエリくらいかな。幸か不幸か、このご時勢においてもトラヒック的には成長し続
はい、これは僕がいつも良く見るApacheとNginxの性能差に見えます。大体、ApacheはNginxの75%程度の性能に落ち着きます。数十バイトの静的コンテンツに対するリクエスト処理はNginxの得意分野だと思っていたので、大体こんなものです。 そこで、真面目にevent_mpmのチューニングを行ってみました。で、幾度となくベンチを試した結果導き出した、静的コンテンツに対する同時接続数100程度に対して最高のパフォーマンスを示すevent_mpmの設定は以下のようになりました。 [program lang=’apache’ escaped=’true’] StartServers 4 MinSpareThreads 4 MaxSpareThreads 4 ThreadsPerChild 2 MaxRequestWorkers 2 MaxConnectionsPerChild 0 [/p
Apacheの脆弱性(CVE-2011-3192)いわゆるApache killerが話題になっていますが、その脅威については一部誤解があるようです。 以下は、非常に脅威とする報告の例です。 一方今回のはプロセスの肥大化を伴うので、実メモリ消費して更にスワップも使い尽くしてOS毎激重になったあげくLinuxとかの場合はOOM Killer発動と、他のプロセスや場合によってはOSを巻き込んで逝ってしまいます。 CVE-2011-3192 Range header DoS vulnerability Apache HTTPD 1.3/2.xより引用 以下は、それほど脅威でなかったとする報告の例です。 pooh.gr.jp は結構頑丈だったので 60 並列でやっと CPU idle 30% まで減らせた。 Apache Killer (CVE-2011-3192) 対策 for CentOS 5
nginxやvarnishなどがアツいですが、Apacheもまだまだ実績や安定性から採用されていると思います。ここではデフォルトとは異なる値に変更するサーバ設定を中心に、パフォーマンス改善、安全性向上のためのApacheの設定を紹介します。 mpmの確認 > /path/to/bin/httpd -V Server version: Apache/2.2.19 (Unix) Server built: Jun 23 2011 17:13:13 Server's Module Magic Number: 20051115:28 Server loaded: APR 1.4.5, APR-Util 1.3.12 Compiled using: APR 1.4.5, APR-Util 1.3.12 Architecture: 64-bit Server MPM: Worker PreforkやW
7/9(土)にチューニンガソン というイベントに参加して優勝してきたので、その報告と、何を考えてどんなチューニングをしたのかを 記憶の範囲で公開したいと思います。 今回のチューニンガソンのお題は、WordPress(ja) + php + Apache + MySQL で、 ab を使って wp-comment.php 経由でコメントのポストをすることで計測が行われました。 MySQLとApacheを立ち上げたらWordPressが動く環境が渡され、そのWordPress自体は設定ファイルを含めて 改造が一切禁止、WordPressの実行をショートカットするチートも禁止です。 0. 試合前日 環境がAWSとAMI Linuxということは事前に公開されていたため、前日にAWSに登録して少しだけAMI Linuxを 触ってみました。yumベースだけどCentOSと違って結構新しいバージョンが用
一年ほど前にヤフーを退職した私ですが、その後なにをやっているかというと、クックパッドに入社して画像配信をしています。私が入社する前から動いていた画像配信の仕組みは設計が古くてなにかと困っていたので、より良いシステムを開発してリプレースというのをやっています。前職ではなかなかこういう基盤システムを一人でイチから作って運用までするという体験はできなかったので、でかい仕事をできるチャンスに恵まれて大変充実した毎日です。 入社当初はサービス開発の担当だったんですが、開発に必要な基盤システムを作り始めたらどんどんエンジニアリングのレイヤーが下がってきて、気づけばインフラチームに所属していました。 まあそんな話はさておき、この画像配信関連の成果をいくつかの勉強会で発表したので、その資料を紹介します。 サイバーエージェントxクックパッド合同勉強会(amepad) 弊社オフィスで開催された、サイバーエージ
はじめに Apache2.2の基本設定、バーチャルホスト設定、ログ設定等はApache2.2の設定にまとめています。 Maxclients以外のパラメータ(StartServers、MinSpareServers、MaxSpareServers、MaxRequestsPerChild)についてはApache2.2のパフォーマンスチューニング(その1)にまとめています。 MaxclientsについてはApache2.2のパフォーマンスチューニング(その2)にまとめています。 本記事では、Apache2.2のパフォーマンスチューニング(その2)でメモリ使用量の観点から導き出したMaxClients = 280が本当に正しいのかをabコマンドで確かめたいと思います。 通常時のメモリ使用量について 負荷をかける前に使用可能メモリ量を調べます。メモリについては以下のサイトを参考にしました。 http
先日、Web サーバ勉強会 #2 が開かれました。内容は、Apache のチューニングということで、参加したかったのですが、他の予定があって参加できませんでした。 そこで、僕が個人的に行っている Apache のチューニングを紹介したいと思います。最初、スライドで作成しようかと思ったのですが、ブログにまとめたほうがよさそうなのでブログにまとめていきます。 まず、大前提として Apache をチューニングするうえで、大事なことはその Apache が提供する Web サービスの種類のよって大きくチューニングする内容が異なるということです。例えば、動画・写真共有サービスと株価情報のサービスを比較すると、当然のことながら大きくサービスの内容が異なりますし、HTTP レベルでみるとクライアントからのリクエスト数、データサイズ、などがかなり違ってきます。 ですので、まずは自分が扱っているウェブサービ
15:59 | 先日、運営しているサイトcocoの画像サーバを構築しました。昨今はVPSが500円程度で借りられる様になり、一人WEBサービス屋には本当にいい時代になりました。今回、選定対象にしたのは、以下3つの業者です。ServersMan(初期0円 / 月額490円 / メモリ256M / HDD 10G)S@@Ses(初期3000円 / 月額450円 / メモリ512M / HDD 50G)SAKURA Internet(初期0円 / 月額980円 / メモリ512M / HDD 20G)料金やスペックについて、2010/12/19時点のものを記載しました。キャンペーン適用や保障スペックなど細かい注意点がありますので、詳しくは各社サイトでご確認下さい。シミュレーション処理数値目標は、月間1億アクセスとしました。これは、1ページ当たり50画像掲載だったとすると、200万PV。ブラウザキ
サーバ上で動いてるどのphpが重いか?を調べられる「PhpTop」。 「サーバ監視に超使える〜topコマンドのまとめ」というエントリで様々なtopコマンドを紹介したのですが、phptopなるものを新たに発見したのでご紹介。 具体的に出来ることは、今サーバで動いているものを指定した期間で、もっともアクセスが多いphp、CPUを多く消費しているphp、メモリを多く使っているphpといったものを降順にソートできるというものです。 サーバ上で多くのphpが動いており、どうも負荷が高いけどどれが重いのかよくわからないという場合に使えます。 top コマンドでは httpd が動いてるぐらいしか分からないので phper な方で負荷にお悩みの方は使ってみるのもよいかも。 たとえば、 $ phptop -t 15 -s mem のように実行すると、15分以内で、メモリを多く使っている順にソートが可能。
遭遇しない人は一生遭遇しないであろう症状 # httpd -X とかやって apache を起動、終了を繰り返していると、そのうち、 [Mon Feb 09 17:54:50 2009] [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed というメッセージをエラーログに吐いて、httpd が起動してすぐ終了してしまう(起動してない)という症状が出るようになる。 # ipcs -s ------ Semaphore Arrays -------- key semid owner perms nsems 0x00000000 11272192 daemon 600 1 0x00000000 11304961 daemon 600 1 ...
Apache の負荷が高いときに Apache を service httpd restart として再起動すると、まれに次のようなエラーメッセージを表示して Apache を再起動できないときがある。 [Mon Feb 09 17:54:50 2009] [crit] (28)No space left on device: mod_rewrite: could not create rewrite_log_lock Configuration Failed えっ、ハードディスクの空き容量がなくなったと勘違いしそうなエラーメッセージだけれど、これは Apache がセマフォを使いきっているために起こる現象。サーバを再起動すればすぐになおすことができるが、そうそうサーバを再起動できないので、次のコマンドで Apache ユーザが使用しているリソース一覧を表示して確認する。 $ sudo
「Official Google Webmaster Central Blog: Make your websites run faster, automatically — try mod_pagespeed for Apache」によると、Googleが mod_pagespeed という Apache モジュールを公開したとのこと。 これは Google が以前よりFirefox/Firebox用のアドオンとして提供していた「Page Speed」をApacheモジュール化したものです。 Page Speedはウェブサイトのパフォーマンスを評価して高速化するためのヒントを与えてくれるツールで、主にキャッシュ周りやCSS、JavaScript、画像ファイルなどに関する改善ポイントを示してくれます。 今回公開された mod_pagespeed は、そういったPage Speedが提案する
Please note This document refers to the 2.0 version of Apache httpd, which is no longer maintained. Upgrade, and refer to the current version of httpd instead, documented at: Current release version of Apache HTTP Server documentationYou may follow this link to go to the current version of this document. Apache 2.x is a general-purpose webserver, designed to provide a balance of flexibility, porta
1.はじめに Webアプリケーション開発の現場で使用されている開発言語には、Java、Perl、PHP、最近であればRuby、Pythonなどがあります。この分野ではC言語も、CGIによるWebアプリケーション開発で旧来から用いられていますが、最近の開発者にはあまり馴染みがないかもしれません。当時の新技術であったJavaと比較して、あまりにも遅い結果が出ていたからとも言われています。 しかし、Webサーバの「Apache」、データベースの「PostgreSQL」「MySQL」、OSの「Linux」など、各所でオープンソースソフトウェア(OSS)の開発言語には、依然としてC言語が多く用いられています。このようにC言語は、Webアプリケーション開発の現場で使われるケースは減ったものの、現在でも重要な開発言語の一つです。 そこで今回は、Apache 2.2のmod_dbdで実装された「データベー
こんにちは、アシアルの井川です。 今日はApacheモジュール開発方法を紹介したいと思います。難しそうに聞こえるかもしれませんが、Apacheのツール(apxs)を使うので意外と簡単に作成できます。また、今回作成するのは"hello world"をHTMLの先頭に加えるだけのシンプルなモジュールです。 本当に簡単なので、ぜひ一度作ってみて下さい。 開発の流れは次の通りです。 0. 開発環境の準備 1. モジュールのひな形の作成 2. コードの記述(C言語) 3. コンパイルしてインストール 4. httpdの再起動 開発環境は既にできている前提で話を進めます。必要なパッケージは ・httpd ・httpd-devel ・gcc であり、検証環境は次の通りです。 ・CentOS 5.5 ・Apache 2.2.3 ただし、httpdにso_moduleが組み込まれている必要があります。次のコ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く