ちゃんと覚えておけよ?

忘れちゃいけない事のメモ、覚え書き

サーバの502エラーの原因が判明⇒解決へ

ここ1年近くサーバの502エラーに悩まされてきましたが、
ようやく原因解明と解決に至りました。

結論からいって原因は「SATA接続のHDD」。
前サーバはWIN鯖だったため、networkというフリーソフトでネットワークを見ていたのだが 、
アップロードのネットワークが上がったり下がったりとギザギザを表していた。

ネットワークが下がっているタイミングでサイトを閲覧していたとすると『502エラー』になってしまう。
これはどういうことかというと、SATAの接続方式が原因だった。

SATAは一方向通信でHDDの場合、書き込みと読み込みを交互に繰り替えす。
ユーザがページにアクセスした際に読み込み結果を吐き出す。
ログや、アクセスの際に何かを書き込む処理を行っている場合、
次のユーザーはアクセスが途絶えてしまう。

小規模なサイトではそこまで影響は出ないが、ある程度まで行くと絶対に壁にぶつかってしまう。

逆にSASの場合は双方向通信が出来るため、書き込みと読み込みを同時に行え、
常にユーザに正しいレスポンスを返すことが出来る。

RAID0などでHDD速度を上げてレスポンスを早くすれば、ある程度までは耐えられるが、すぐに使い物になると思う。
SAS HDDはSATA HDDと比べバカみたいに高いが、サーバを運営する上で一番必要な物だと実感した。

以下が全サーバのスペック
2013年1月13日時点で考えれば決して悪くないスペックだと思うが、
SATAのHDDが完全に足を引っ張ってしまいCPUを台無しにしていた。
そして、apacheのエラーをはきまくる結果となっていた。
■前サーバ
CPU xeon E3-1260L
MEM 8G×2(ECC無し)
マザー S1200KP
SSD AS511S3-60GM-C(SYS)
HDD ST2000DM001 [2TB SATA600 7200](DATA)

■現サーバ
HP ML350 G6
CPU Xeon E5645×1(2基まで搭載可)
HDD SAS 2.5 HDD 10000rpm 300G×6 (RAID 10構成)
MEM 2G×3(ECC)
RAID 410iコントローラー 256M バッテリー無し

今では、502は皆無で快適なサーバライフを送っている。
SATA HDDは絶対に使うなというわけではないが、使うならほとんどアクセスのない、DATA置き場として使うといいのではないだろうか。

 

Comment

*