修正する

修正する

/dev/mydisk機能スタックに基づくデバイスであるLUKS暗号化ソフトウェアRAID-1があります。

ここに画像の説明を入力してください。

私は時々/dev/mydisk外部USBディスクにコンテンツをバックアップしますが、それ自体はLUKSを使用して暗号化されます。いくつかの100GiBを転送する必要があります。これは単純ではddなく再帰的ですcp。 (まだuseに変更する必要がありますrsync。)

バックアップが開始されてからしばらくすると、システム全体の相互作用が大幅に低下しました。 KDE インターフェイスは明らかにメモリ要求が承認されるのを待っています。プロンプトが出るまで2分待つのは珍しいことではありません。ネットワークI / Oを待つのにも多くの忍耐が必要です。これは、起動後に不明な目的で各zipを解凍し、各ファイルの内容を索引付けすることを決定したときに発生する状況と似ていますbaloo。つまり、システムが沼地のカヌーになります。

カーネルはすべてのRAMをコピープロセスに提供しているように見え、機会があればそれを対話プロセスに再提供しないようにします。 RAMも悪くありません:23GiB。万が一に備えて11GiBのスワップスペースもありますが、常に数MiBが占めています。

コピープロセスの前に対話型プロセスにRAMを確保させることはできますか?それでは、どうすればいいですか?

バージョン情報:

  • これはFedora 29(4.19.15-300.fc29.x86_64)システムですが、以前のFedoraシステムでもこの問題があったことがわかります。
  • KDEバージョンは「KDEフレームワーク:5.53.0」に基づいています。

修正する

今まで全員の回答ありがとうございます!

何を探すべきかを知ると、何かが見つかります。

私が選んだもの:

I/O チューニングを処理できるプロフェッショナルなシステムがまだない理由は何ですか..?

答え1

nice -n 19プロセス(CPUに低い優先順位を与える)とおそらくionice -c 3(アイドル時のI / O)をバックアップします。

rsyncも大幅に改善されます(毎回100 Gbをコピーするわけではありません)。たとえば、私のバックアップスクリプトは次のようになります。

SOURCE=/whatever/precious/directory
DESTINATION=/media/some_usb_drive/backup
nice -n 19 rsync --verbose --archive --compress --delete --force --recursive --links --safe-links --rsh ssh --exclude-from=$EXCLUDEFILE $SOURCE $DESTINATION
# or
nice -n 19 ionice -c 3 rsync --verbose --archive --compress --delete --force --recursive --links --safe-links --rsh ssh --exclude-from=$EXCLUDEFILE $SOURCE $DESTINATION

(exclude-from は、.cache ディレクトリ、.o ファイルなどを防ぐために使用されます.)

答え2

nocache

確認してみると、文書には記載されていませんが、nocache 通常書くことができなければならない。小さなファイルをコピーするときは、fdatasync()各ファイルを呼び出す必要があるため、実行が遅くなります。

fdatasync()(バルク/コールの影響を減らすには、Linux固有の機能を使用してください。fsync()dpkgIO およびキャッシング効果に関する関連回答で、これがどのように機能するかについての説明「[1]」を参照してください。。ただし、これをnocachedeferに変更する必要があり、close()場合によっては望ましくない副作用がある可能性があります。 :-(.)


別のアイデアは、を使用してcgroupでレプリケーションプロセスを実行し、systemd-runメモリ消費制限を設定することです。 cgroup メモリコントローラはキャッシュとプロセスメモリを制御します。systemd-runこのコマンドの良い例が見つかりません(誰かが1つを提供することができます:-)。

関連情報