現在はWEBサーバと同一サーバ上にlinuxをルータ化させて、同時接続数の確保をしています。
ですが、この場合、ppp接続でのCPU使用率が高く、サーバ自体の負荷耐性が悪くなりました。
その為、ルータを利用していたときほどではありませんが、一ヶ月に1回ほどサーバが止まってしまいます。
他にアクセス数、データ転送量が多いサイトを運営する場合、どのような形でルータの部分(同時接続数の確保)を用意すればいいのでしょうか?
何かいい方法があれば教えてほしいです。
ハテナなどはどうしているのだろ…
なるべく安価に運営出来ることを考えておりますので、100万単位のルータの導入は考えておりません。
また一時ipnutsを利用していたのですが、こちらでも問題ないでしょうか?
宜しくお願いします。
OS:centos4.4
CPU:pentium4、3ghz
メモリ:1GB
実際どの程度のルーターを使用されていましたか?
家庭用の1~2万程度のルーターの場合性能も安定性も低いです。
このクラスのルーターを使用すると改善するかもしれません。
http://netvolante.jp/products/rtx1500/
http://netvolante.jp/products/rtx1100/
また、「同時接続数」と言う事は NAT か動的パケットフィルターを使っていますか?
NAT を使うと言う事は 1IPアドレスで PPPoE と推測しますが、8IP以上の契約ですと NAT を使用する必要がなくなるのでルーターの負荷的には低減が望めます。
また、パケットフィルタリングの類も出来るだけ簡素なもの(ハードウェアで処理できる範囲ならなお良い)にして、サーバー側の iptables で処理してしまうのも手だと思います。
後は Apache の側で帯域制限やコネクション数の制限を設ける等、高負荷状態にならないように調整する手もあります。
ユーザーからはエラーになったりする可能性もありますが、サーバーダウンよりはましと考えます。
自分の経験上ではルーターでは出来るだけ複雑な処理を行わないように設計して「同時接続数」の問題がそもそも起こらないようにしていました。
ipnuts 自体は業務での運用経験はないのですが、軽く使った限りでは特に問題はなさそうでした。
簡易的にルーターを設置するにはとても便利だと思います。
実際どの程度のルーターを使用されていましたか?
家庭用の1~2万程度のルーターの場合性能も安定性も低いです。
このクラスのルーターを使用すると改善するかもしれません。
http://netvolante.jp/products/rtx1500/
http://netvolante.jp/products/rtx1100/
また、「同時接続数」と言う事は NAT か動的パケットフィルターを使っていますか?
NAT を使うと言う事は 1IPアドレスで PPPoE と推測しますが、8IP以上の契約ですと NAT を使用する必要がなくなるのでルーターの負荷的には低減が望めます。
また、パケットフィルタリングの類も出来るだけ簡素なもの(ハードウェアで処理できる範囲ならなお良い)にして、サーバー側の iptables で処理してしまうのも手だと思います。
後は Apache の側で帯域制限やコネクション数の制限を設ける等、高負荷状態にならないように調整する手もあります。
ユーザーからはエラーになったりする可能性もありますが、サーバーダウンよりはましと考えます。
自分の経験上ではルーターでは出来るだけ複雑な処理を行わないように設計して「同時接続数」の問題がそもそも起こらないようにしていました。
ipnuts 自体は業務での運用経験はないのですが、軽く使った限りでは特に問題はなさそうでした。
簡易的にルーターを設置するにはとても便利だと思います。
ありがとうございます。
最初に使用していたルータは家庭用の1万円程度のものでしたので、ぜんぜんだめでした。
同時接続数は、ルータのNATセッション数だと思います。
>1IPアドレスで PPPoE
はい、まさにこれです。
rtx1500だと4,096なので、それ以上の接続が発生すると接続不可ですよね。
ip8だといけるのでしょうか?
その場合だと限界はどの程度の接続数が確保出来るのでしょうか?
サーバのトータルアクセスが大体10万HIT/日程度に耐えれるようにはしたいです。
(画像なども多いです)
多量の高速通信=TCP/IPの処理にOS上のメモリー
が沢山つかわれる。
→ OSのリソースを使う
→ PPPoEの処理CPUを多少は使う(?)
→ ルータのPCではページングしない程度の
メモリーは搭載する。 ページングしているようで
あればメモリー増設。
OSの通信用のバッファ領域を大きくする。
(チューニングする)
どのような停止をしているか不明なので
なんともいえませんがある程度の
問題判別は必要かと思います。
1.可能なら実メモリーの増設(1G程度)
2.リソース等を監視して、停止原因を探る
3.ルータを別のPCにする。
=== 以下対処療法====
4.Kernel panicの自動再起動は設定する。
(/proc/sys/kernel/panic)
5.停止したコトをモニターして該当サービスまたは
PCを外部から再起動できるようにする。
http://www.meikyo.co.jp/product.htm
http://www.omron.co.jp/ped-j/product/rc/rc1504/rc1504.htm
http://www.shoshin.co.jp/rugged/iboot/
サーバタイプの安めの物
Express5800/110Gc
Celeron D 2.66Ghz
256M x 4( or 512Mx2 )
80GB SATA
CD-ROM
1000BASE-T LANボード追加
http://club.express.nec.co.jp/Store/server/110gc.html
PowerEdge SC440 160GB HDD
Celeron D 2.8Ghz
512Mx2 533Mhz
160G SATA
CD-ROM
1000BASE-T LANボード追加
http://jpstore.dell.com/store/newstore/bsd/bsd_catalog_431.asp
たしかにKernel panicで落ちていたような気がします。(LOGを見て)
このような対象方法があるのですね。
自動リブート装置は便利そうなので一度考えてみます。
ありがとうございます。
経験上ですが、意外に通信の負荷って高いんで、メモリとかその辺りも怪しいような気がします。
実際最終的にサーバーが落ちる状態になる要因は、はっきりとデータ転送の部分(通信的なところ)が原因なのでしょうか?
X使っているのか?
データ転送量がどの程度か?
その中で使われているCGI等の要素も判らないので何とも断言は今の段階で難しいですが、今考えておられる部分とは別の要素のような気がしないでもないです
あとppp接続でCPU負荷高いとのことですが、カーネルモードでその状態でしょうか?
ありがとうございます。
Xは使っていません。
データ転送量はMRTG上での内容になりますが、
送信が1500kB/秒です(一日の平均値)。
ファイルにはphpも利用していますが、DBなどの利用はしておらず、静的なページが多いです。
>あとppp接続でCPU負荷高いとのことですが、カーネルモードでその状態でしょうか?
見たところ、ユーザーモードで動かしていました。
カーネルモードだと速度はだいぶ早くなるのですね。参考になります。
ただ、サーバ一台でPPPOE、WEBを動かすのは問題がありそうなので、PPPOEを別にしたいなと考えてます。回線はBフレッツベーシックです。
rtx1500だと4,096なので、それ以上の接続が発生すると接続不可ですよね。
ip8だといけるのでしょうか?
NAT/NAPT の類を使用しない、かつ動的フィルターを使用しないのであればルーターの種類にかかわらす接続数の上限はほぼありません。
4,096等の制限は(NAT等で)コネクションを動的に管理しなければいけないためにメモリ上で細くする必要があることから生まれる制限です。
管理しない、という方向に持っていくことで制限を回避する事が出来ます。
IP8等の契約であれば NAT を使用しなくて済みます。
もっともそのためだけにIP8個以上の契約をするのも非効率ですが、サーバーがネックになって台数を増やす事になるなら検討する価値はあるかもしれません。
サーバのトータルアクセスが大体10万HIT/日程度
単純計算で1~2アクセス/秒ですか。
感覚的にはそのぐらいであればこのクラスでもいけそうには思いますが、いずれにせよ PPPoE は結構負荷が高いので1台のPCで賄うのは止めた方がよさそうですね。
>NAT/NAPT の類を使用しない、かつ動的フィルターを使用しないのであればルーターの種類にかかわらす接続数の上限はほぼありません。
>4,096等の制限は(NAT等で)コネクションを動的に管理しなければいけないためにメモリ上で細くする必要があることから生まれる制限です。
そうなんですね。
これ知りたかったです。
>IP8等の契約であれば NAT を使用しなくて済みます。
>もっともそのためだけにIP8個以上の契約をするのも非効率ですが、サーバーがネックになって台数を増やす事になるなら検討する価値はあるかもしれません。
IP8はかなり考えてみます。これでいけるならありがたいです。
上の回答に書いたのですがデータ転送量がかなり多いので、もしかすると複数台設置すると1本の光回線では厳しいかもしれませんが…
またIP1でもNATを使用しないでいけないものなのでしょうか?
この辺が疎くてよくわかりません。グローバルIPをそのままサーバ上に設定出来ないからでしょうか。
よければ教えていただければと思います。
>送信が1500kB/秒です(一日の平均値)。
1.5Mbyte/s = 1500*1024*8 = 12.2Mbit/s
が原因でPPPoEが過負荷にはならないので、
ピーク時のバースト的なトラフィック
がどの程度であるかが問題
>回線はBフレッツベーシックです。
100MbpsでP4 3GであればCPUに余力は
あるように思うのですが。
http://www.s-me.co.jp/support/IPnuts4Transfer.pdf
※:検索エンジンからのアクセスは規制・抑制はしてますよね?
ありがとうございます。
たしかに余力があるのかもしれません。
(ピークでは、7483kB/秒でした)
他の部分(WEBサーバの部分など)を含めて11時頃から急に負荷が上がる場合がありました。
今回はPPPOEの機能を分離して対処した方が信頼面からいってもよさそうなので、そちらの面で考えています。
また検索エンジンからのアクセスは特に制限はしてないです。
1本の光回線
Bフレッツのベーシック以下の回線なら上位回線に切り替えることで回線的には改善するかもしれません。
スペック上の転送速度は変わらなくても上位回線ほど他の人との共有部分が少なくなるので安定度がまします。
またIP1でもNATを使用しないでいけないものなのでしょうか?
この辺が疎くてよくわかりません。グローバルIPをそのままサーバ上に設定出来ないからでしょうか。
ルーターを使用せず、単一のPCのみを使用するだけなら NAT は必要ありません。
本来1IPではルーター分しか確保できないのを仮想的に後ろのサーバーを見えるようにしているのが NAT(静的NAT)の役割なので。
それなりのスペックで PPPoE の負荷等も含めてカバーできそうであればそれも一つの解かとは思います。
一応ご提示の情報どおり回線負荷を前提に考慮してきましたが、一般にどこがネックになっているかを判断するのは難しいものです。
場合によっては Webサーバー側で動作しているアプリケーションの改善による解決も考えられるかもしれません。
まずは、何が根本の原因かを改めて検証されることをお勧めいたします。
詳しい説明をして頂き、参考になりました。
一度IP8で考えて見ます。
ありがとうございました。
ありがとうございます。
最初に使用していたルータは家庭用の1万円程度のものでしたので、ぜんぜんだめでした。
同時接続数は、ルータのNATセッション数だと思います。
>1IPアドレスで PPPoE
はい、まさにこれです。
rtx1500だと4,096なので、それ以上の接続が発生すると接続不可ですよね。
ip8だといけるのでしょうか?
その場合だと限界はどの程度の接続数が確保出来るのでしょうか?
サーバのトータルアクセスが大体10万HIT/日程度に耐えれるようにはしたいです。
(画像なども多いです)