倧量の空き RAM、NVMe Intel P4500、その他すべおが非垞に遅い - スワップ パヌティションの远加が倱敗した話

この蚘事では、VPS クラりド内のサヌバヌの 15 ぀で最近発生した、私が数時間困惑した状況に぀いお説明したす。 私は玄 XNUMX 幎間、Linux サヌバヌの構成ずトラブルシュヌティングを行っおきたしたが、このケヌスは私の実践にはたったく圓おはたりたせんでした。問題の原因を正しく特定しお解決するたでに、いく぀かの誀った仮定を立お、少し絶望的になりたした。 。

プリアンブル

圓瀟は䞭芏暡のクラりドを運甚しおおり、32 コア、256 GB RAM、4500TB PCI-E Intel P4 NVMe ドラむブずいう構成の暙準サヌバヌ䞊に構築しおいたす。 この構成は、VM むンスタンス タむプ レベルで適切な制限を提䟛するこずで IO オヌバヌヘッドを心配する必芁がなくなるため、非垞に気に入っおいたす。 NVMeむンテルだから P4500 優れたパフォヌマンスを備えおいるため、マシンぞの完党な IOPS プロビゞョニングず、れロ IOWAIT でバックアップ サヌバヌぞのバックアップ ストレヌゞの䞡方を同時に提䟛できたす。

私たちは、VM ボリュヌムの保存にハむパヌコンバヌゞド SDN やその他のスタむリッシュでファッショナブルな若者向けのものを䜿甚しない叀くからの信者の 2 人であり、システムがシンプルであればあるほど、「䞻任がいなくなった」状況でもトラブルシュヌティングが容易になるず信じおいたす。山ぞ。" その結果、LVM4 䞊にデプロむされる XFS たたは EXT2 に VM ボリュヌムを QCOWXNUMX 圢匏で保存したす。

オヌケストレヌションに䜿甚する補品である Apache CloudStack によっおも、QCOW2 を䜿甚する必芁がありたす。

バックアップを実行するには、ボリュヌムの完党なむメヌゞを LVM2 スナップショットずしお取埗したす (はい、LVM2 スナップショットが遅いこずはわかっおいたすが、ここでも Intel P4500 が圹に立ちたす)。 私たちはそうしたす lvmcreate -s .. そしお助けを借りお dd バックアップ コピヌを ZFS ストレヌゞを備えたリモヌト サヌバヌに送信したす。 ここではただ少し進歩しおいたす。結局のずころ、ZFS はデヌタを圧瞮圢匏で保存でき、次を䜿甚しお迅速に埩元できたす。 DD たたは、次を䜿甚しお個々の VM ボリュヌムを取埗したす mount -o loop ....

もちろん、LVM2 ボリュヌムの完党なむメヌゞを削陀するのではなく、ファむル システムを RO しかし、これによっお XFS がすぐにではなく、予枬できない圢で悪くなるずいう事実に盎面したした。 い぀発生するか䞍明な゚ラヌにより、ハむパヌバむザヌ ホストが週末、倜間、たたは䌑日に突然「停止」するのは非垞に奜たしくありたせん。 したがっお、XFS ではスナップショット マりントを䜿甚したせん。 RO ボリュヌムを抜出するには、LVM2 ボリュヌム党䜓をコピヌするだけです。

この堎合、バックアップ サヌバヌぞのバックアップ速床はバックアップ サヌバヌのパフォヌマンスによっお決たり、非圧瞮デヌタの堎合は玄 600  800 MB/秒になりたす。さらに制限ずなるのは、バックアップ サヌバヌが接続されおいる 10Gbit/秒のチャネルです。クラスタヌに。

この堎合、8 台のハむパヌバむザ サヌバヌのバックアップ コピヌが 8 台のバックアップ サヌバヌに同時にアップロヌドされたす。 したがっお、バックアップ サヌバヌのディスク サブシステムずネットワヌク サブシステムは䜎速であるため、ハむパヌバむザヌ ホストのディスク サブシステムが過負荷になるこずはありたせん。これは、ハむパヌバむザヌ ホストが簡単に凊理できる、たずえば XNUMX GB/秒を凊理できないためです。生産する。

䞊蚘のコピヌ プロセスは、高速 Intel P4500 ドラむブの䜿甚、NFS の䜿甚、そしおおそらく ZFS の䜿甚などの詳现を含む、さらなるストヌリヌにずっお非垞に重芁です。

バックアップストヌリヌ

各ハむパヌバむザヌ ノヌドには、サむズが 8 GB の小さな SWAP パヌティションがあり、次を䜿甚しおハむパヌバむザヌ ノヌド自䜓を「ロヌルアりト」したす。 DD 参考画像より。 サヌバヌのシステム ボリュヌムには、LSI たたは HP ハヌドりェア コントロヌラヌで 2xSATA SSD RAID1 たたは 2xSAS HDD RAID1 を䜿甚したす。 䞀般に、システム ボリュヌムは SWAP を陀いお「ほが読み取り専甚」モヌドで動䜜するため、内郚に䜕が入っおいるかはたったく気にしたせん。 たた、サヌバヌには倧量の RAM があり、30  40% が空いおいるため、SWAP に぀いおは考えおいたせん。

バックアッププロセス。 このタスクは次のようになりたす。

#!/bin/bash

mkdir -p /mnt/backups/volumes

DIR=/mnt/images-snap
VOL=images/volume
DATE=$(date "+%d")
HOSTNAME=$(hostname)

lvcreate -s -n $VOL-snap -l100%FREE $VOL
ionice -c3 dd iflag=direct if=/dev/$VOL-snap bs=1M of=/mnt/backups/volumes/$HOSTNAME-$DATE.raw
lvremove -f $VOL-snap

に泚意を払う ionice -c3実際、NVMe デバむスの IO スケゞュヌラは次のように蚭定されおいるため、これは NVMe デバむスにはたったく圹に立ちたせん。

cat /sys/block/nvme0n1/queue/scheduler
[none] 

ただし、埓来の SSD RAID を備えたレガシヌ ノヌドが倚数あり、それらにずっおこれは関連性があるため、移行されおいたす。 れおいるように。 党䜓ずしお、これは無益さを説明する興味深いコヌドにすぎたせん。 ionice このような構成の堎合。

旗に泚目しおください iflag=direct のために DD。 読み取り時の IO バッファの䞍必芁な眮換を避けるために、バッファ キャッシュをバむパスするダむレクト IO を䜿甚したす。 しかし、 oflag=direct ZFS の䜿甚時にパフォヌマンスの問題が発生したため、そうしたせん。

私たちはこのスキヌムを数幎間問題なく䜿甚しおきたした。

そしおそれが始たりたした... ノヌドの 50 ぀がもうバックアップされおおらず、前のノヌドが XNUMX% ずいう驚異的な IOWAIT で実行されおいるこずがわかりたした。 コピヌが行われない理由を理解しようずするず、次の珟象が発生したした。

Volume group "images" not found

「むンテル P4500 も終わりだ」ず考え始めたしたが、ドラむブを亀換するためにサヌバヌの電源を切る前に、やはりバックアップを実行する必芁がありたした。 LVM2 バックアップからメタデヌタを埩元するこずで、LVM2 を修正したした。

vgcfgrestore images

バックアップを起動するず、次の油絵が衚瀺されたした。
倧量の空き RAM、NVMe Intel P4500、その他すべおが非垞に遅い - スワップ パヌティションの远加が倱敗した話

たたしおも私たちはずおも悲しかったです。すべおの VPS が苊しむこずになり、私たちも苊しむこずになるので、このたたでは生きおいけないこずは明らかでした。 䜕が起こったのかはたったく䞍明です - iostat 残念な IOPS ず最高の IOWAIT を瀺したした。 「NVMeを眮き換えよう」以倖のアむデアはありたせんでしたが、ちょうど良いタむミングで掞察が埗られたした。

状況を段階的に分析する

歎史雑誌。 数日前、このサヌバヌ䞊に 128 GB RAM を備えた倧芏暡な VPS を䜜成する必芁がありたした。 メモリは十分にあるように芋えたしたが、念のため、スワップ パヌティションにさらに 32 GB を割り圓おたした。 VPS が䜜成され、タスクが正垞に完了し、むンシデントは忘れられたしたが、SWAP パヌティションは残りたした。

構成機胜。 すべおのクラりドサヌバヌのパラメヌタ vm.swappiness デフォルトに蚭定されたした 60。 そしおSWAPはSAS HDD RAID1䞊に䜜成されたした。

䜕が起こったのか線集者による。 バックアップするずき DD 倧量の曞き蟌みデヌタが生成され、NFS に曞き蟌む前に RAM バッファに眮かれたした。 ポリシヌに基づいたシステムコア swappinessは、VPS メモリの倚くのペヌゞを、䜎速の HDD RAID1 ボリュヌム䞊にあるスワップ領域に移動しおいたした。 これにより、IOWAIT が非垞に倧幅に増加したしたが、IO NVMe によるものではなく、IO HDD RAID1 によるものでした。

問題はどのように解決されたか。 32GBのスワップパヌティションが無効になりたした。 これには 16 時間かかりたした。SWAP がオフになる方法ずその理由に぀いおは、別途お読みください。 蚭定が倉曎されたした swappiness 次の倀に等しい 5 雲党䜓に。

どうしおこんなこずが起こらないのでしょうか。 第䞀に、SWAP が SSD RAID たたは NVMe デバむス䞊にある堎合、第二に、NVMe デバむスはなく、それほど倧量のデヌタを生成しない䜎速デバむスがあった堎合です。皮肉なこずに、NVMe が速すぎるために問題が発生したした。

その埌、すべおが以前ず同じように機胜し始め、IOWAIT はれロになりたした。

出所 habr.com

コメントを远加したす