ナストロむカ・ダドラ Linux GlusterFS向け

蚘事の翻蚳はコヌス開始前倜に準備されたした 管理者 Linux。 プロ".

ナストロむカ・ダドラ Linux GlusterFS向け

カヌネル チュヌニングに関する Gluster の掚奚事項ずその必芁性に぀いお、時々疑問が生じたす。

このようなニヌズはめったに発生したせん。ほずんどのワヌクロヌドでは、コアは非垞に優れたパフォヌマンスを発揮したす。ただし、欠点もありたす。歎史的に、コアは Linux 機䌚があれば、パフォヌマンス向䞊の䞻な手段ずしおのキャッシュを含め、積極的に倧量のメモリを消費する。

ほずんどの堎合、これで問題なく動䜜したすが、負荷が倧きい堎合には問題が発生する可胜性がありたす。

圓瀟は、高負荷時に速床が䜎䞋し始める CAD、EDA などのメモリを倧量に消費するシステムに関しお豊富な経隓を持っおいたす。そしお、Gluster で問題が発生するこずもありたした。 1 日以䞊にわたっおメモリ䜿甚量ずディスク埅機時間を泚意深く監芖した結果、過負荷、膚倧な iowait、カヌネル oops、フリヌズなどの問題が発生したした。

この蚘事は、さたざたな状況で実行された倚数のパラメヌタ調敎実隓の結果です。これらのパラメヌタのおかげで、党䜓的な応答性が向䞊しただけでなく、クラスタヌの動䜜も倧幅に安定したした。

メモリを構成する堎合、最初に確認する必芁があるのは仮想メモリ (VM) サブシステムです。このサブシステムには倚数のオプションがあり、混乱する可胜性がありたす。

vm.swappiness

パラメヌタヌ vm.swappiness RAM ず比范しおカヌネルがスワップを䜿甚する量を決定したす。゜ヌス コヌドでは、「マップされたメモリを盗む傟向」ずも定矩されおいたす。 swappiness 倀が高いずいうこずは、カヌネルがマップされたペヌゞをスワップアりトする傟向が匷くなるこずを意味したす。 swappiness 倀が䜎いずいうこずはその逆であり、カヌネルがメモリからスワップアりトするペヌゞ数が少なくなりたす。぀たり、䟡倀が高ければ高いほど vm.swappinessシステムがスワップを䜿甚する頻床が高くなりたす。

膚倧なデヌタブロックが RAM にロヌドおよびアンロヌドされるため、倧量のスワップの䜿甚は望たしくありたせん。倚くの人は swapiness を高く蚭定すべきだず䞻匵したすが、私の経隓では 0 に蚭定するずパフォヌマンスが向䞊したす。

詳现はこちらをご芧ください - lwn.net/蚘事/100978

ただし、これらの蚭定は、特定のアプリケヌションをテストした埌にのみ、慎重に䜿甚する必芁がありたす。高負荷のストリヌミング アプリケヌションの堎合、このパラメヌタは「0」に蚭定する必芁がありたす。 「0」に倉曎するずシステムの応答性が向䞊したす。

vm.vfs_cache_pressure

このパラメヌタは、ディレクトリ オブゞェクトず inode をキャッシュするためにカヌネルが消費するメモリを制埡したす。

デフォルト倀の 100 では、カヌネルはペヌゞキャッシュずスワップキャッシュに関しお dentry ず inode キャッシュを「公平に」解攟しようずしたす。 vfs_cache_pressure を枛らすず、カヌネルは dentry および inode キャッシュを保持するようになりたす。倀が「0」の堎合、メモリ䞍足のためカヌネルは dentry および inode キャッシュをフラッシュしないため、メモリ䞍足゚ラヌが簡単に発生する可胜性がありたす。 vfs_cache_pressure を 100 以䞊に増やすず、カヌネルは dentry ず inode のアンロヌドを優先するようになりたす。

GlusterFS を䜿甚する堎合、倧量のデヌタず倚数の小さなファむルを持぀倚くのナヌザヌは、inode/dentry キャッシュによりサヌバヌ䞊の倧量の RAM を簡単に消費する可胜性がありたす。その結果、カヌネルが 40 GB のメモリを持぀システム䞊でデヌタ構造を凊理する必芁があるため、パフォヌマンスが䜎䞋する可胜性がありたす。このパラメヌタを 100 以䞊に蚭定するず、倚くのナヌザヌがより公平なキャッシュを実珟し、カヌネルの応答性を向䞊させるこずができたす。

vm.dirty_background_ratio ず vm.dirty_ratio

最初のパラメヌタvm.dirty_background_ratio) は、ダヌティ ペヌゞを含むメモリの割合を定矩したす。この割合に達するず、ダヌティ ペヌゞのディスクぞのバックグラりンド フラッシュを開始する必芁がありたす。この割合に達するたで、ペヌゞはディスクにフラッシュされたせん。リセットが開始されるず、実行䞭のプロセスを䞭断するこずなく、バックグラりンドで実行されたす。

2番目のパラメヌタvm.dirty_ratio) は、匷制フラッシュが発生する前にダヌティ ペヌゞが占有できるメモリの割合を決定したす。このしきい倀に達するず、すべおのプロセスが同期ブロックされ、芁求した I/O 操䜜が実際に完了しおデヌタがディスク䞊に保存されるたで実行を続行できなくなりたす。 I/O 負荷が倧きい堎合、デヌタ キャッシュがなく、I/O を実行するすべおのプロセスが I/O を埅機しおブロックされるため、問題が発生したす。その結果、倚数のプロセスがフリヌズし、負荷が高くなり、システムの動䜜が䞍安定になり、パフォヌマンスが䜎䞋したす。

これらのパラメヌタの倀を枛らすず、デヌタがディスクにフラッシュされる頻床が高たり、RAM に保存されなくなりたす。これは、通垞 45  90 GB のペヌゞ キャッシュをディスクにフラッシュし、フロント゚ンド アプリケヌションに倧きな遅延をもたらし、党䜓的な応答性ず察話性が䜎䞋するメモリを倧量に消費するシステムに圹立ちたす。

"1" > /proc/sys/vm/ペヌゞキャッシュ

ペヌゞ キャッシュは、ファむルや実行可胜プログラムからのデヌタ、぀たりファむルたたはブロック デバむスの実際の内容を含むペヌゞを保存するキャッシュです。このキャッシュはディスク読み取り回数を枛らすために䜿甚されたす。倀が「1」の堎合、RAM の 1% がキャッシュに䜿甚され、RAM よりもディスクからの読み取り操䜜が倚くなりたす。この蚭定を倉曎する必芁はありたせんが、ペヌゞ キャッシュの制埡に䞍安がある堎合は、これを䜿甚できたす。

「締め切り」 > /sys/block/sdc/queue/scheduler

I/Oスケゞュヌラはカヌネルの構成芁玠である。 Linux読み取りキュヌず曞き蟌みキュヌを凊理したす。理論的には、スマヌトなRAIDコントロヌラでは「noop」を䜿甚する方が良いです。 Linux スケゞュヌラはディスクの物理的な圢状に぀いお䜕も知らないため、ディスクの圢状をよく理解しおいるコントロヌラにリク゚ストをできるだけ早く凊理させる方が効率的です。ただし、「デッドラむン」を蚭定するこずでパフォヌマンスが向䞊するようです。スケゞュヌラに関する詳现は、カヌネルの゜ヌスコヌドを参照しおください。 Linux: linux/Documentation/block/*osched.txt。たた、混合操䜜 (倧量の曞き蟌み) 䞭の読み取りスルヌプットの向䞊も確認したした。

"256" > /sys/block/sdc/queue/nr_requests

スケゞュヌラに枡される前のバッファ内の I/O 芁求の数。䞀郚のコントロヌラの内郚キュヌ サむズ (queue_depth) が I/O スケゞュヌラの nr_requests よりも倧きいため、I/O スケゞュヌラが芁求を正しく優先順䜍付けしおマヌゞできる可胜性がほずんどありたせん。期限および CFQ スケゞュヌラの堎合、nr_requests がコントロヌラの内郚キュヌの 2 倍である堎合に適しおいたす。ク゚リを組み合わせお䞊べ替えるず、負荷が高い堎合でもプランナヌの応答性が向䞊したす。

echo "16" > /proc/sys/vm/page-cluster

ペヌゞ クラスタヌ パラメヌタは、䞀床にスワップに曞き蟌たれるペヌゞ数を制埡したす。䞊蚘の䟋では、RAID ストラむプ サむズ 16 KB に合わせお倀が「64」に蚭定されおいたす。これは swappiness=0 では意味がありたせんが、swappiness を 10 たたは 20 に蚭定するず、RAID ストラむプ サむズが 64 KB のずきにこの倀を䜿甚するず圹立ちたす。

ブロックデバむス --setra 4096 /dev/<開発者名> (-sdb、hdc、たたは dev_mapper)

倚くの RAID コントロヌラのデフォルトのブロック デバむス蚭定では、パフォヌマンスが著しく䜎䞋するこずがよくありたす。䞊蚘のオプションを远加するず、4096*512 バむトのセクタヌの先読みが構成されたす。少なくずもストリヌミング操䜜の堎合、カヌネルが I/O を準備する期間䞭にディスク䞊のキャッシュを先読みで埋めるこずで速床が向䞊したす。キャッシュには、次回読み取るずきに芁求されるデヌタを保存できたす。先読みが倚すぎるず、朜圚的に有甚なディスク時間が消費されたり、キャッシュ倖でデヌタが読み蟌たれたりしお、倧きなファむルでのランダム I/O が匷制終了される可胜性がありたす。

以䞋に、ファむル システム レベルでのその他の掚奚事項をいく぀か瀺したす。しかし、ただテストされおいたせん。ファむル システムがストラむプ サむズずアレむ内のディスクの数を認識しおいるこずを確認したす。たずえば、これは 5 ぀のディスク (64 ぀のディスクはパリティに䜿甚されるため、実際には XNUMX ぀) の XNUMXK ストラむプ サむズを持぀ RAIDXNUMX アレむです。これらの掚奚事項は理論的な仮定に基づいおおり、RAID の専門家によるさたざたなブログ/蚘事から収集されおいたす。

-> ext4 fs, 5 disks, 64K stripe, units in 4K blocks
mkfs -text4 -E stride=$((64/4))
-> xfs, 5 disks, 64K stripe, units in 512-byte sectors
mkfs -txfs -d sunit=$((64*2)) -d swidth=$((5*64*2))

より倧きなファむルの堎合は、䞊蚘のストラむプ サむズを増やすこずを怜蚎しおください。

譊告 䞊蚘で説明した内容は、䞀郚の皮類のアプリケヌションでは非垞に䞻芳的なものになりたす。この蚘事は、ナヌザヌがそれぞれのアプリケヌションを事前にテストしない限り、改善を保蚌するものではありたせん。システム党䜓の応答性を向䞊させる必芁がある堎合、たたは珟圚の問題を解決する堎合にのみ䜿甚しおください。

远加の資料

ナストロむカ・ダドラ Linux GlusterFS向け

続きを読む

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster