php + apache のメモリ量をおさえる
php + apache のメモリ量をおさえる
「/proc/(pid)/status」のメモリサイズからメモリ消費量をリストアップするスクリプトを準備した。 「サーバ/インフラを支える技術」に載っている、id:naoyaさんの共有しているメモリのサイズを計算するスクリプトとあわせて、エクセルに落とし込んでごにょごにょと計測してみる。 http://d.hatena.ne.jp/naoya/20080212/1202830671 http://archive.linux.or.jp/JM/html/LDP_man-pages/man5/proc.5.html [www]~ $ cat memory_size.sh #!/bin/sh GREP="/bin/grep" AWK="/bin/awk" PRINTF="/usr/bin/printf" if [ $# -lt 1 ]; then echo "usage: ${0} [pid .
TIS株式会社の小林です。今回はApache HTTP Server(Apache)の設定についてお話しします。 NetCommonsやSugarCRMなどスクリプト系言語で実装されたビジネスアプリケーションをApacheで動作させる場合、mod_perl、mod_phpなどApacheの追加モジュールで動作させることが良くありますが、この時のApacheの1プロセスの使用メモリは100MBを超える場合も少なくありません。 もしmod_perlやmod_phpなどを利用して、かつApacheをデフォルト設定で動かしているならば、アクセス数が多くなった時にメモリが足りなくなり、スワップが頻発して急激な性能劣化を引き起こしたり、最悪の場合OOM-Killerが動作して他のプロセスにまで影響を与える可能性があります。そのようなトラブルを未然に防ぐためにApacheの設定を見直しましょう。 ここで
普段Webサーバを運用していて、めんどくさいトラブルのひとつに「Segmentation fault」があります。 あれー?なんか500エラーがでるなーなんて思ってログを見るとSegmentation faultになってるときは死にたくなります。 そもそもSegmentation faultはメモリ上にあるデータに対して不正が行われたときに起こるもので、 インフラエンジニアにとってはなかなか手がだせないところでもあります。 それでもなんとかして治さないといけないわけなので せめてどのプログラムが悪さしてるかどうかぐらいは調べ上げてみます。 apacheでのログ apache + mod_perl での環境です。 こんな感じでエラーがでます。 #tail error_log [notice] child pid 26028 exit signal Segmentation fault (11
シンボリックリンク攻撃を防ぐための Apache HTTPD モジュールの解説はこちら: Apache HTTPD: mod_allowfileowner https://fumiyas.github.io/apache/mod-allowfileowner.html 背景 ロリポップの共有 Web サービス下のサイト改ざん事件で、 攻撃手法の一つとして 「他ユーザー所有のファイルへのシンボリックリンクを自分のコンテンツディレクトリ下に作り、Apache HTTPD 経由でアクセスする」手順が利用されたらしい。 参考: http://blog.tokumaru.org/2013/09/symlink-attack.html 当社サービス「ロリポップ!レンタルサーバー」ユーザーサイトへの第三者による大規模攻撃について http://lolipop.jp/info/news/4149/#090
A new signed release is in progress, as the project has exited the Apache Incubator If you're using Nginx you need to build from source. These packages are Apache-only. Any releases offered below are pre-apache releases. Supported platforms CentOS/Fedora (32-bit and 64-bit) Debian/Ubuntu (32-bit and 64-bit) To install the packages, on Debian/Ubuntu, please run the following command: sudo dpkg -i m
皆様こんにちは。シャノンインフラ担当の藤井です。 初めましてですので、簡単に自己紹介を致します。 インフラ歴はIDCオペレータや監視要員、運用SE、OSSインフラ構築含めて12年ほどです。それまではベトナムのホーチミンでインターネットカフェを経営したりして日本には見向きもしませんでした。ところが海外に居ると、急激に極端に日本を意識し始め、今では地元の御輿や消防団、弓道などに参加し、日本的なものについて「分かる」ことではなく「身につける」をモットーに、精進しております。 株式会社シャノンには3月に入社したばかりです。社内の平均年齢が、今月30歳を突破したとのことです。私は数日前に不惑に至り、社内の平均年齢UPに貢献しております。 先輩方のレベルの高さにドキドキしながらも、何とか縁にしがみついて、シャノンという船に乗っています。ドキドキしたい人は是非ご応募を! さて本題。 今回は mod_pr
apacheユーザのumask値を変更する 環境 # cat /etc/redhat-release Fedora release 13 (Goddard) systemd(Fedora15以降)の場合は、Apacheユーザのumask値を変更する-systemd編を参照 背景 webアプリケーションでは、ソースの配置はローカルユーザで行いますが、実際の動作はapacheユーザとなります。そうすると下記のようなことが起きるケースがあります。 webアプリケーションが出力するログファイルやキャッシュファイルはapacheユーザーが作成します。つまり、ファイルの所有者はapacheとなります。 ローカルユーザがメンテナンスで不要なキャッシュファイルを削除できません。なぜなら、所有者/所有グループ=apache/apache、アクセス権限はrw-r--r--であるためです。 これを解決するため、
今回は、Webサイトやサービスをメンテナンス中にする場合に、どのURLにアクセスしても「メインテナンス中です」の画面を出す正しいやり方を、人間にも検索エンジンにも適切にする作法を主眼に解説します。 この週末の土曜深夜~日曜早朝にかけて、データセンターの設備メインテナンスのため、Web担を含むインプレスグループのほとんどのWebサイトが、どのURLにアクセスしても「メンテ中です」という表示になっていました。 なのですが、その実装がちょっと気になったので、「正しいメンテナンス画面の出し方」を説明してみます。 ※2010-01-16 Retry-Afterを指定するHeaderの指定を修正しました(コメント参照) ※2009-06-17 RewriteCondから [NC] 条件を削除しました(コメント参照) ※2009-06-16 Retry-Afterの記述をGMTに変更しました(コメント参
KLab Advent Calendar 2011 「DSAS for Social を支える技術」の9日目です。 前回は php を動かしている Apache の手前にリバースプロキシを 置く必要性を解説しました。 今日は、 その前の php のプロセス数を絞る設定と合わせて、実際に Apache で 設定する方法を紹介します。 以降、 php を動かしている Apache の事をアプリサーバー、リバースプロキシ+ 静的ファイル配信を行っている Apache の事をプロキシサーバーと呼びます。 基本設定 まずは基本的な設定のおさらいです。 アプリサーバー 並列数を絞るには MaxClients を設定します。アプリがどれくらいの時間を CPUの処理で使って、どのくらいの時間を外部リソース待ちに使っているかにも よりますが、だいたいCPU数の1.5倍〜2倍くらいが適当だと思います。 Hyp
この文書は内容が古くなっています。 インストール ページで新しい文書を探してください。 要約 Redmine等のRuby on Railsアプリケーションを"Phusion Passenger(mod_rails for Apache)":http://www.modrails.com/ を利用してApache上で稼働させる手順を説明します。 運用の簡素化、複数インスタンスを並列稼働させることによるレスポンスの改善が期待できます。 インストールの流れは次の通り。 gem install passenger passenger-install-apache2-module httpd.confの変更 Phusion Passengerとは Railsアプリケーションを実行するためのApacheモジュールです。 特徴 Apache単独でRailsアプリケーションを実行可能です。Apacheのモ
ApacheにDoS攻撃を受ける脆弱性のアラートが出ている。現時点で出回っている2.x系および1.3系の全バージョンが対象。 しかもApache Killerと呼ばれる攻撃はとても簡単らしく、検証した人の記事によると「あっという間にCPUやメモリリソースが喰い尽くされる」相当に深刻なものらしい。 早速対処版のapache-2.2.20が公開されているものの、ubuntuのアップデートはまだ先のようなので、まずは設定でガードするのが吉。 Advisoryに従い、以下の記述 # Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (?:,.*?){5,5} bad-range=1 RequestHeader unset Range env=bad-range # We always drop
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
ウェブサイトやブログの運営でよく使いそうな便利な.htaccessの設定を紹介します。 こういうまとめは定期的にあがってきますが、やっぱり必要なのでシェアします。 10 useful .htaccess snippets to have in your toolbox [ad#ad-2] 下記は各ポイントを意訳したものです。 URLからwwwを削除 hotlinkingの防止 feedをfeedbunnerにリダイレクト カスタムエラーページ ダウンロードファイルの処理 PHPのエラーのログ URLからファイルの拡張子を削除 ディレクトリのファイルリストを見せない ファイルを圧縮して軽量化 文字コードの指定 URLからwwwを削除 SEOなどの理由で、URLからwwwを削除して使うことがあるかもしれません。このスニペットは、あなたのウェブサイトにwww付きでアクセスしてきてもwww無しに向
昨日は何でまた終電帰りかというと。某データセンタに行ってロードバランサの設定を頼まれたのでやっていたのだが(別件で行っていたのだけど、臨時で当日仕事を振られた)。 で、証明書渡されて、LBにインポートして設定しとけと。渡された証明書は VeriSign で署名してもらった物で、ファイルのテキストだけぽろっと渡されたのね。てっきり PEM 形式の証明書だと思ったのだけど、インポートしてみたら、LBで証明書が読めない(証明書だと認識されない)でやんの。なんだこれは、ということでごにょごにょやって、問題がわかるまでに時間をつぶしてしまった。 問題は何だったのか? 証明書のファイル形式について に基づいて証明書(hoge.txt)を表示してみようとした。 $ openssl x509 -in hoge.txt -text unable to load certificate 5504:error:
最近ではコンピューター、ウェブ、モバイルでゲームを楽しめるようになりました。これらのゲームプログラミングについて学びましょう。 ゲームプログラミングの特徴 ゲームプログラミングは比較的新しいジャンルです。 ゲーム開発に使用される言語は、C#、C++、JavaScript、Swift、Rubyです。ゲームでは通常のアプリケーションと異なり複雑なビジュアルを操作するパフォーマンスと速度が要求されますので、プログラム言語もそれに特化している言語がおすすめです。 ゲームプログラミングは今後も人気の職種です。習得してステップアップを目指しましょう。 Oracle PLのプログラミング言語について学びましょう。 Oracle PLの特徴 SQL、T-SQLと同様にOracle PLもデータベースを処理するための言語です。違いとしてはOracle PLは世界最大のデータベースのひとつであるOracleデ
少しずつですがUNIX/Linuxサーバやネットワークの管理者として必要な基本的なことを書いていこうと思います。 今回はWebサーバのdownloadフォルダからどのファイルが何回ダウンロードされているのかをコマンドで集計して表示させます。こんな感じです。 これを表示させるコマンドは初めて見ると魔法に見えるのですが実際はすごく単純です。 まず、apacheのログのありかを捜します。Debianなどは「/var/log/apache2/」にあるaccess.logがそれに当たります。まずはこれを普通に見てみます。 catコマンドで見ていると山のようにテキストが表示されます。(IPアドレスはxxxに直してます) 以下、太字が入力したコマンド、それ以降がサーバからの表示です。 # cat /var/log/apache2/access.log ::1 - - [28/Mar/2010:06:25
こんにちは nakamura です。最近トルシエさんテレビ出すぎじゃありません?ウィイレヤロウヨ。オフサイドダヨ! さてさて今回は意外と知られてないけど、サイトをインターネットに公開する際には知っておいた方が良い Apache の設定をいくつかご紹介します(一部 PHP の設定もありますが)。この設定をしていないからといって即危険にさらされるという訳でもありませんが、リスクの芽は摘んでおくに越した事はありませんよね。 無駄な HTTP ヘッダを返さない ディストリビューションにより異なるかもしれませんが、CentOS デフォルトの設定の場合 Apache が返してくる HTTP ヘッダは以下のようなものです。 HTTP/1.1 200 OK Date: Mon, 05 Jul 2010 01:01:14 GMT Server: Apache/2.2.3 (CentOS) X-Powered
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く