これは実際には自宅のサーバーですが、SuperUserにインストールできないほど複雑で、プロの状況に簡単に適用できると感じました。
Debian(Lenny 5.0.4)を実行しているファイルサーバーがあり、RAID5の上にXFSLVMがあり、OSドライブはRAIDとは別です。また、Apache、samba、postgresqlも実行しています。補足:RAID5の批評家が私を批判する前に、私はRAID5を使用しています。これは、生のドライブスペースに見合うだけの価値があり、フォールトトレランスがまだあるためです。
ボックスが(シャットダウンまたは再起動によって)開始されると、そのsamba共有への読み取り/書き込みにより、ギガビットネットワーク接続が最大になります。時間の経過とともに、これはゆっくりと低下し、最終的には10MB /秒未満になります。ただし、再起動すると、速度は接続の最大値に戻ります。
なぜこれが起こっているのですか?サーバーを停止せずに、原因を「クリア」する方法はありますか?
前もって感謝します!
EDIT: @ LapTop006の質問に答えるために、cat/proc/mdstatの出力は、再起動後と低速時で同じです。
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sdd1[0] sda[5] sdb[4] sdf[3] sdg1[2] sde1[1]
4883799680 blocks level 5, 64k chunk, algorithm 2 [6/6] [UUUUUU]
unused devices: <none>
Xfs_dbのfragコマンドによると:
actual 58969, ideal 23904, fragmentation factor 59.46%
編集2:私は標準のDebianカーネルを使用しています。 cat/etc/fstabは、OSドライブとraidに対してこれを出力します。
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/sda1 / ext3 errors=remount-ro 0 1
/dev/mapper/oomox-lvm /raid xfs defaults 0 2
正直なところ、私はLinuxの最大の第一人者ではなく、コマンドライン(つまり、mkfs_xfs)を介してraidまたはlvmを作成しませんでした。 OSを最初にインストールするときにUIベースのDebianRAIDインストールセットアップを使用し、アレイにドライブを追加する必要がある場合にのみコマンドラインを使用しました。
再び減速し始めたら、iostat出力を投稿します。
編集3:
低速または高速の場合、iostat出力は、すべてのドライブ間で均等に読み書きされたバイトを示します。設定もしてみました
socket options = TCP_NODELAY
@Avery Payneのアドバイスに従って、samba構成で、しかしそれはまだ遅かった。ただし、sambaを再起動するだけで問題が修正されたため、少なくとも問題は絞り込まれています。私はこの問題を少し最近まで経験したことがないので、これはかなり奇妙です。
最終編集: @ DavidSpillettの実行の提案を試しました
time dd if=/dev/sda of=/dev/null
遅いときのドライブごとに、速いときとの違いがあるかどうかを確認します。違いはありません。したがって、問題は明らかにSambaにあります。
@AveryPayneに正解を与えています。 @David Spillettの回答にはトラブルシューティング手法の優れた探偵がありますが、技術的には@AveryPayneがこの問題を解決する最も正しい方向を示してくれました。これに対する最終的な解決策が見つかったら投稿します。
みんな、ありがとう!
ボックスが(シャットダウンまたは再起動によって)開始されると、そのsamba共有への読み取り/書き込みにより、ギガビットネットワーク接続が最大になります。時間の経過とともに、これはゆっくりと低下し、最終的には10MB /秒未満になります。ただし、再起動すると、速度は接続の最大値に戻ります。
問題はほとんどの場合、OSまたはハードウェアではなく、Samba構成にあります。 SambaでTCPオプションが正しく設定されていますか?TCPフローが遅くなることにより、クライアントアクセスが低下する原因となるオプションがいくつかあります。または追加のオーバーヘッドを引き起こすことによって。
RAIDとfstabは正常に見えます。
コメントへのフォローアップ:
Smb.confでは、グローバルセクションに次の行が必要です。
socket options = TCP_NODELAY
詳細については、FAQのSambaパフォーマンスチューニングセクションを参照してください。
http://samba.org/samba/docs/man/Samba-HOWTO-Collection/speed.html
いくつかのことを除外するのに役立つかもしれないいくつかの考え:
どこかでメモリリークが発生し、しばらくするとマシンが狂ったようにスワップする可能性がありますか?問題が明らかな場合は、free -m
を確認してください。
また、RAIDソフトウェアが再同期を実行する必要があると判断する際に問題が発生する可能性がありますか?これを確認するのに時間がかかる場合は、/proc/mdstat
を確認してください(ただし、再起動によってこれが解決されるとは思いません。このような再同期は、再起動後に再起動する必要があります)。
ローカルI/Oの問題を除外しましたか?問題が明らかな場合、アレイはローカルプロセスに対してどのくらいの速度で実行されますか。ローカルプロセスが通常の速度でアレイにアクセスできない場合、Sambaは問題ではありません(逆に、ネットワークアクセスができない場合にアクセスできる場合、これは反対のことをサポートします)。ドライブがローカルで遅いように見える場合は、netcat
で簡単なテストを実行して、ネットワークが遅くないこととドライブを確認することで、さらに証拠を探すことができます。およびpv
( http://www.interphero.com/?p=116 を参照するか、他の例については「netcatspeedtest」を検索してください)。
1つまたは複数のドライブのファームウェアの問題である可能性がありますか?製造元からそのような更新があったかどうかを確認してください。また、奇妙に再生されているのは1つのドライブだけである可能性があります。速度の問題が発生した場合は、time dd if=/dev/sda of=/dev/null
を試して、ドライブごとに数回繰り返し、平均を取ります。 1つのドライブが他のドライブよりもはるかに遅い場合は、おそらく問題があり、交換する必要があります(または既知の問題がある場合はファームウェアの更新) 。
ネットワークカードの問題(ハードウェアまたはドライバー)を除外しましたか?別のギガビットカード(チップセットが異なる)と交換して、違いが生じるかどうかを確認できます。
問題がSambaであり、RAIDアレイ、ネットワークカード、またはその他のものではないと思われる場合、問題を修正するために完全な再起動が必要ですか、それとも単にSambaを再起動するだけで十分ですか? (または、サーバーがそのようにドメインに参加している場合は、Sambaとwinbinddの両方を再起動しますか?)
RAID5コメントに関する補足:
RAID5の主な問題は、特に多数の小さな書き込みの場合の書き込みパフォーマンスです。これは、重いデータベース作業のパフォーマンスを低下させる可能性がありますが、大部分の時間を一括読み取りの実行に費やす基本的なファイルサーバーの役割(状況のように聞こえます)の場合、ほとんどの場合、目立った影響はほとんどまたはまったくありません。書き込みパフォーマンスが問題になる場合は、3ドライブモードで光沢のある新しいRAID10ドライバーを試してください(3ドライブRAID5と同様の読み取りパフォーマンス) (または2ドライブRAID0) ただし、1つのドライブが一度に停止する可能性があるのと同じ冗長性を維持しながら、2ドライブRAID1のような書き込みパフォーマンスを実現します。ただし、RAID10ドライバーは、最新のカーネルを除くすべてのカーネルで「実験的」として分類される場合があります。
RAID5のもう1つの問題は、1つのドライブを交換した場合にアレイを再構築するのにかかる時間です。その点では、3ドライブRAID10の方が優れているとは思えません。
参考までに:3台のドライブ上のLinuxのRAID10は、一部のIBMサーバーのRAIDコントローラーがRAID1Eと呼ぶものと似ています。