スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

激安パソコン構成を探して

前回、自宅サーバに公開しているwordpressサイトが劇的に重いという旨の記事を書き、サイト改善に行えそうな事を調べてみました。箇条書きにすると以下の項目あたりです。

  • DBを最適化するプラグインを導入する
  • APCを導入してPHPを速くする
  • nginx+FastCGIにする
  • WP Super Cacheを使う
  • nginxのproxy cacheを使う
  • Apacheパフォーマンス・チューニング http://www.atmarkit.co.jp/flinux/rensai/apache16/apache16a.html
  • wordpress再構築(予想:カテゴリー多すぎなので減らして記事を投稿しなおす)

nginxとキャッシュが肝になってくるので、Apacheのチューニングは必要ないかもしれません。それに、一番最後のWordpress再構築の部分もかなりウェイトがあると思います。これに加え、サーバ側としては、

  • CentOS 32bit版→ 64bit版移行
  • 最小構成でのOS起動。不要なプロセスは起動させない、もすくはアンインストール。GUIもこの際いらない
  • CPUのスペックアップ

さて、nginx + FastCGIでもやるかと思ってましたが、Apacheとnignxの両Webサーバを起動させて、どっちのサーバが呼び出されるのか?とか、最小構成の観点からも、綺麗に構築したいなと思い始め、どんどん改善熱が冷めていきました。。。

サイトたちが重いとは言え、一応、動いているわけで。crontabにはスクリプトが何個か登録させており、定期的に稼働しているわけです。この対応を進めていくにあたり、稼働を止めなきゃいけないと思ったら、サーバをもう一台新調したくなりました。新規で買うにはもったいないので、中古パソコンで。

 

ググった結果、

 


これが、4,999円!今のサーバ、3万近くで組み立てたのに!!後の祭りなわけで。



BUFFALO デスクトップPC用増設メモリ PC2-5300 (DDR2-667) 2GB D2/667-2G/E
バッファロー (2009-04-10)
売り上げランキング: 313


このメモリ2,280円を追加すれば、最強だな。と確信していたのですが、引っかかるCPUのCeleron D。

 

・FMV-D5230 製品詳細 -FMWORLD(法人):富士通
http://www.fmworld.net/biz/fmv/product/hard/vdt0610/d5230/

 

富士通のサイトで調べると、このCPUはCeleron D 336と判明。これをインテルのサイトで最大消費電力(Max TDP)を調べると。

・Intel® Celeron® D Processor (Desktop)
http://ark.intel.com/products/family/5263/Intel-Celeron-D-Processor/desktop

 

84W!と言われてもピンときませんが、今サーバに搭載されているCPUは、Celeron 400なので23.7W。

・マルカン 保温電球 20Wですが、大体で良いので、1ヶ月のかかる電気代を教えて下... - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414810899

 

こちらの計算方法で電気代を最大値で計算してみると、

Celeron 400 : 0.5円/h → 360円/月

Celeron D 336 : 1.8円/h → 1296円/月

続きを読む

ApacheBenchを使ってWordpressで公開しているページのパフォーマンス測定

今回はwordpressとさほど関連はないですが、wordpressで構築して公開しているサイトについてApacheBenchを使って、パフォーマンスをチェックしてみいと思います。

というわけで、いきなりコマンドを打って、実行してみました。URLは架空のものです。

$ ab -c 1 -n 1 http://siteA.net/

でうまくいったので、数字を増やしてやろうと

$ ab -c 2 -n 1 http://siteA.net/
ab: Cannot use concurrency level greater than total number of requests
Usage: ab [options] [http[s]://]hostname[:port]/path

とやってみるとエラーが(・ω・;)?Apacheの設定で同時接続数もしくは、同IPからアクセスに制限がかかってるものだと勘違いしていましたが、コマンドを正しく打ってませんでした。というか、エラーにその旨が書いてありますが。。

ad -c [同時アクセス数] -n [連続アクセス数] http://[アクセス先]

要するに、同時アクセス数 > 連続アクセス数をどうやって実現するんだ!?って話ですね。上記だと1アクセスするのに2端末使いますよって話です。1端末は用無し。。

そういうわけでミニ失敗談はさておき、気を取り直してパフォーマンスチェックします。

パフォーマンスチェック結果の見方

Document Path アクセス先htmlファイル
Document Length アクセス先ファイル容量
Concurrency Level 送信リクエスト数
Time taken for tests リクエスト完了までの所要時間
Complete requests 総リクエスト数
Failed requests 取りこぼしたリクエスト数。取りこぼしの発生は、同時接続数にサーバの処理能力が追い付いていないことが原因と考えられます
Requests per second 1秒あたりに処理されたリクエスト数。パフォーマンスの尺度として利用します。この値が高くなるように、サーバの最適化を行います
Time per request 1秒あたりに処理された所要時間
Transfer rate 1秒あたりに受信された容量
Connnection Times (ms) 上から順に接続(Connect)、処理(Processing)、待ち時間(Wait)を集計し、最小値(min)、平均値と標準偏差(mean[+/-sd])、中央値(median)、最大値(max)で表している
Percentage of the requests served within a certain time (ms) 処理時間の推移

この中でとりあえず気になるのは、Time taken for tests(リクエスト完了までの所要時間)ですかね。これが速ければ速い方がいいのは当たり前ですが、1ページ当たりどれくらいのストレスを感じるかの目安にしやすいと思います。実際はRequests per second(1秒あたりに処理されたリクエスト数)を基準とするようです。では実験結果は下記に。

続きを読む

LAN内から自宅サーバへのHTTPアクセスに対する問題

光回線にしてから、PR-S300NEルータが我が家に来て、以下のようなネットワーク構成になっています。

kateinailan


以前のADSL時の構成の場合は、特に問題はなかったのですが、このPR-S300NEルータが来てから、LAN内で自宅サーバへのhttpアクセスができなくなりました。外部から(例えばこの図だと携帯から携帯回線で)httpサーバへはアクセスできます。正確に言えば、独自ドメイン(例としてhogehoge.comとする)のWebページにアクセスできません。なのでhttp://192.16.1.11/等のLAN内のIPアドレスを指定すればアクセスはできます。どうやら、LAN内のマシンからブラウザでhogehoge.comへアクセスを試みると、

クライアントマシン→PR-S300NE→プロバイダ→お名前.com(hogehoge.com)→プロバイダ→PR-S300NE→ × →hogehoge.comサーバ

となっているようです。回り回ってPR-S300NEルータに対してhttpアクセスしているように見えます。この問題の解決方法は2パターンあると思います。

  • hostsファイルを編集
  • DNSサーバを構築

hostsファイルを編集する場合の特徴は、LinuxでもWindowsでもhostsファイルに

192.168.1.22 hogehoge.com

※192.168.1.22は自宅サーバのLAN内IPアドレス

と記述するだけのお手軽対応です。その変わりデメリットとして、LAN内でhogehoge.comへアクセスしたいクライアントマシン全てに対してhostsファイルを編集する必要があり、LAN内にクライアントマシンをたくさん抱えている場合は現実的ではありません。

 

DNSサーバを構築する場合の特徴は、PR-S300NEルータにきたアクセスを一旦自宅サーバのDNSサーバで引き取り、振り分けるようにルーティングするはずなので、上記のデメリットであるhostsファイルの存在を気にする必要がありません。そのかわり、hostsを編集するほどお手軽とは言えません。


[参考]

・内部向けDNSサーバー構築(BIND) - CentOSで自宅サーバー構築
http://centossrv.com/bind-lan.shtml

 

上記リンクを参考に、内部向けだけでも構築しようと思いましたが、面倒なので あまり理解していないDNSサーバでせっかく繋がっているWebサーバにいらんことしてアクセスできなくなり、時間を割かれそうな予感がしたので、今回は見送りました。まぁでも、将来的にサーバを増やしたらやらなきゃいけない課題ではあります。

WordpressとPHP、MySQLのバージョン一覧とインストール

以前はMovable Typeを使っていましたが、最近はもっぱらWordPressです。ググってるとどうも、wordpressの記事が多いなとか、記事の動的構築に魅力を感じて変更しました。って今更感の話ですが、このブログに書いてなかったし、テスト環境を構築するので書き留めておきます。まず、wordpressを動かす環境をしらべなければなりませんね。もちろん、CentOS + apache環境ですが、PHPとMySQLのバージョンを。

バージョンを調べる

PHPの場合は、

$ php -version
PHP 5.1.6 (cli) (built: Nov 29 2010 16:47:37)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

-varsionオプションですぐに出てきます。この場合、5.1.6というこで。現時点で最新のWordpress3.3.1の動作環境がPHP5.2.4以上なので、最新のバージョンを使えない事がわかります。

MySQLの場合は、

$ mysql --version
mysql  Ver 14.12 Distrib 5.0.22, for redhat-linux-gnu (i686) using readline 5.0

“Ver”と書いてあるので、14.12だと思いそうになりますが、見るべくは5.0.22の方です。もしくは、ログインして、

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.22    |
+-----------+

調べる事も可能です。MySQLの方はほとんどが5以下で変動もないので特に気にする事もないかもしれません。

とりあえず、PHPから最新のWordpressを利用できない事はわかりましたが、どのバージョンなら良いのか?

・WordPress | 日本語 リリース
http://ja.wordpress.org/releases/

 

過去のバージョンがダウンロードできるページに特に書いてないので、調べてみました。

続きを読む

PostgreSQLのバックアップ

データベース一覧表示

PostgreSQLのバックアップを行う前に、どんなデータベースが存在するのか一覧を表示させるコマンドから。

$ psql -U postgres

で、ログインし、

# \l


            List of databases
Name | Owner | Encoding
----------------+--------------+----------
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 rows)

データベース一覧が表示されます。

万が一、ログインパスワードを忘れて、管理者権限を持っているなら、

$ vi /var/lib/pgsql/data/pg_hba.conf

で設定ファイルを開き、認証方式をtrustに変更して、

local all all trust

PostgreSQLを再起動してやれば強引にログインできる方法も…

$ service postgresql restart

データベースをバックアップ/リストアする

データベースのバックアップは、以下のコマンドで行う事ができます。

$ pg_dump -U オーナー名 データベース名 > バックアップファイル名

上記データベース一覧で、template0データベースのバックアップを行う場合は、以下のようになります。

$ pg_dump -U postgres template0 > db.dump

リストアの方法は、まずデータベースを作成し、リストアのコマンドを実行します。

$ createdb データベース名

$ psql -f バックアップファイル名 データベース名   

データベースをまるっと全部バックアップ/リストアする

上記バックアップだと、個別にバックアップが取れますが、リストア時にデータベースを作成しなおす必要があります。一覧に表示されたデータベースを丸ごとバックアップするには、少々面倒です。以下のコマンドを使うと、全てをバックアップすることができます。

$ pg_dumpall > バックアップファイル名

このdumpファイルには、保存されたデータベースの作成等のコマンドも含まれているため、リストアは、

$ psql -f バックアップファイル名

で可能です。

マザーボードごとメモリを交換

ブログをほったらかしにしてましたが、
メリー、クリ○○スということで、Linuxサーバちゃんと一緒に過ごしております。

WindowsのメインマシンをXPからWin7への移行に伴いハードのスペックアップによるお下がりハードができたので、


DSC_0898 
Transcend JetRam PC3-10600(DDR3-1333) 2GB JM1333KLU-2G

 

DSC_0894
ASRock M/B LGA775 Intel G41 ASRock G41/ICH7 M-ATX DDR2/DDR3 G41C-GS

 

Linuxサーバへメモリを増設してやりたいと思います。今まではDDR2のメモリを装着していたので、ちょうど手元にあったマザーボードと一緒に交換です。なんと、このマザーボード、DDR2/DDR3のデュアルメモリスロットということで、今まで指していた1GBメモリも使えるんじゃね?とウハウハです。

 

DSC_0904

早速、サーバを停止して開けて交換です。まぁマザーボードの交換って他のパーツに比べて一番手間かかりますね。パワースイッチとかも、マニュアルを見ながらピンに刺さなきゃいけないとか。。

 

というわけで、DDR2のメモリとDDR3のメモリ両方を指して、サーバの電源をONにしてみると、

ピーピー、ピーピー、ピーピー


と、サーバ内のスピーカーが警告音を。。
うーん、やっぱりメモリか?ということで、DDR2の方を外して起動させるとうまくいきました(´ヘ`;)
マニュアルに、特に一緒に指しちゃダメって書いてなかった気がするので、ごり押しでやってみたわけですが。。
まぁなんとか2GBのメモリ1枚差しで増設成功ということで。。

何故増設しようと思ったかというと、Javaプログラム等を動かしている分には良いのですが、最近サーバへのHTTPアクセスが少し増えたせいか、メモリが圧迫されてます。

端末で

$ ps aux | sort -nr -k 4 | head -n 10

 

などと、メモリ食い上位10プロセスを表示させるコマンドを打つと、ほとんどがApacheサーバのプロセス。今回メモリを2倍にまで増やしたので、少々安泰ですが、Apacheの設定とかいぢる必要がありますね。。

あと、最近CentOS 6も出たという事で、今サーバは32bit版Cent OS5で動いてるので、6の64bit版も入れてみたい今日この頃です。。



■2012/01/05追記
年明けにCentOS6を最小構成で入れようと思ってましたが、メモリ増設で多少無茶ができるようになったのと、最小構成で入れる場合に、公開しているApatchサーバや開発環境等を元に戻すのに時間がかかりそうなで、CentOS6はしばらく見送りで...

Digest認証を使ったアクセス制限

Webページのあるディレクトリ配下にパスワードでロックをかけたい場合、Basic認証を使ってきましたが、盗聴に弱いという弱点があります。この面を改善したのがDigest認証です。設定方法もBasic認証とほぼ変わらないですし、ちょっとつまずいた点があったのでメモしておきます。

続きを読む

tag : Basic認証 Digest認証 .htaccess apache

Subversionの履歴を保持したままリポジトリを移動

リポジトリを移動させる主な手順は移動元リポジトリのダンプファイルを作成し、それを移動先リポジトリへロードし、subversion.confを編集します。

移動元のダンプファイルを作成するには、

#svnadmin dump [移動元リポジトリ] > [ダンプファイル名]


で、行います。
移動先に受け入れ態勢を作るために、リポジトリを作成します。

#svnadmin create [移動先パス]


#chown -R apache:apache [移動先パス]


これで準備ができたので、ロードします。

#svnadmin load [移動先パス] < [ダンプファイル名]


これで移動完了ですが、このままではクライアントソフトから使えないので、

#vi /etc/httpd/conf.d/subversion.conf


とコマンドし、下記の赤字部分を新しいパスへ編集します。

<Location /svn>
DAV svn
SVNParentPath [移動先パスの親ディレクトリ]

</Location>

これでapacheを再起動させればOKです。<Location /svn>と移動先のディレクトリ名も変更していなければクライアント側の変更はありません。

tag : subversion.conf

Webページとリポジトリを同一系統のパスにした場合の懸念点と対策

Webサーバでホームページを運用しつつ、同じドメインでApache連携できる構成管理ツールのSubversionも運用したい場合、公開部分とBasic認証で隠したい部分が出てくると思いますが、いろいろ気になった点についてメモをまとめておきます。まぁ、できるなら別々のドメインで運用した方がいいかもしれませんが・・

以下のような環境と設定を前提として話を進めていきます。



Apache/2.2.3のhttpd.confの設定は
/var/www/html
配下をWebサイトとして公開しており、配下全域に403エラー404エラーErrorDocumentディレクティブで独自のページを引っかけるようにしています。

<Directory "/var/www/html">
Options FollowSymLinks Includes ExecCGI MultiViews
AllowOverride all
Order allow,deny
Allow from all
ErrorDocument 403 http://myserver.com/403.html
ErrorDocument 404 http://myserver.com/404.html
</Directory>


subversion.confの設定は、
/var/www/html/private/svn
配下をリポジトリを作成するフォルダとし、Basic認証をかけてます。なので、/var/www/html/private/svn 配下は部外者に見られたくない個所ということです。

<Location /svn>
DAV svn
SVNParentPath /var/www/html/private/svn

AuthType Basic
AuthName "Prototype"
AuthUserFile /etc/.svn
Require valid-user
</Location>


構成管理ツールのクライアントソフトはTortoiseSVNを扱うことにします。

まず、この前提だけだとBasic認証のかけ方に問題があります・・

続きを読む

tag : subversion apache 403エラー 404エラー ErrorDocument httpd.conf subversion.conf Basic認証 .htaccess TortoiseSVN

【未解決】CG-WLR300Nをメインルータにした場合のLANにおけるバーチャルサーバの遅延

以前も書きましたが、ブロードバンドルータに関しては未解決事件が何件かあります。
Linux CentOS低予算自宅サーバ奮闘メモ 突然ルータがダウン?
去年は安定稼働してましたが、未だにこのルータは忘れた頃にダウンしたりします・・

我が家に、横着したい人間がおりまして、その需要により無線LANルータ(以降、CG-WLR300N)を導入しました。最近まで、設定をいじるのが面倒だったので、CG-WLR300Nルータ機能をOFFにして既存の有線ルータ(以降、corega BAR MX)と接続しておりましたが、電気代と中継している機械を減らそうと、CG-WLR300Nをメインルータに設定を変更してネットに接続しました。

最初は問題なく稼働しているように見えましたが、自鯖に置いてるWordPressの管理画面にログインしようとしたところ、ロードの著しい遅延が発生しました。この遅さはFirefoxなら途中で諦めるか、スタイルシートがバカになった状態で表示してくれました。

これじゃー、訪問してくれた人が読まないうちに離れてしまうと思い、原因を調査しました。とりあえず、遅延が発生するかしないかでいろいろ実験を行い、問題を切り分けていきました。

■2011/12/25追記
ブログ書きっぱなしで、放置してましたすみません。
今現在、回線もADSLからフレッツ光へ回線も変りました。当時はモデムとルータの役割は別々の装置でしたが、光移行に伴いNTTより提供してもらったPR-S300NEが一応メインルータとして機能しています。そして、サーバとメインルータの間にCG-WLR300Nがいます。回線からの接続装置数で言えば、上記の構成ですが問題無く動いてます。

続きを読む

tag : CG-WLR300N barmx 無線LAN ルータ

プロフィール

白鯖

Author:白鯖
安い寄せ集めの部品で構築し、CentOS5をインストールしました。主に、Webサーバ、アプリケーションサーバとして運用中。ハードの知識はあまり無いプログラマですが、全部自前で作るのは、手間はかかるけど、レン鯖より面白いです。

ハードウェア構成

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
Max TDP控え目なCPU
安くて静音なクーラー
検索フォーム
ユーザータグ
RSSフィード
はてな
スポンサード リンク
おすすめ書籍
twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。