Ingin memperbaiki pertanyaan ini? Perbarui pertanyaan agar sesuai dengan topik untuk Unix &Linux Stack Exchange.
Ditutup 4 tahun yang lalu.
Perbaiki pertanyaan ini
Saya membeli hard drive baru untuk server saya, dan saya mencoba mengatur ulang file saya. Untuk transfer pertama, rsync
disalin ~ 3 GB dengan sempurna. Namun, dengan setara rsync
perintah, transfer kedua gagal.
$ sudo /usr/bin/nice -n 19 /usr/bin/ionice -c2 -n7 rsync -aEHAXPx /media/a/ /media/b --delete
...
rsync: [sender] write error: Broken pipe (32)
rsync error: error in socket IO (code 10) at io.c(820) [sender=3.1.1]
Jalankan pertama disalin sekitar 550 dari 800 GB sebelum tersedak. Upaya yang lebih baru hanya berhasil menyalin 1 GB sebelum mati. Saya tidak yakin apakah itu relevan, tetapi sumbernya adalah drive cadangan inkremental backintime, jadi ini berisi banyak tautan keras. Bagaimana cara memperbaiki kesalahan ini dan menyelesaikan perintah?
Saya menjalankan rsync versi 3.1.1 protokol versi 31.
Jawaban yang Diterima:
dmesg | grep rsync
[85852.560086] Kehabisan memori:Bunuh proses 4242 (rsync) skor 194 atau korbankan anak [85852.562695] Proses mati 4243 (rsync) total-vm:121948kB, anon-rss:65752kB, file-rss:4kB – Sparhawk
solusi:
- ubah kecepatan rsync Anda menjadi di bawah kecepatan disk Anda.
--bwlimit=6000
.. USB 2 adalah 60MB/s /4 untuk rw lebih dari 2 drive atau /10 untuk mencari di non ssd… atau dapatkan XU4 dengan RAM 2GB dan USB3. - ubah parameter memori kernel
echo 100 > /proc/sys/vm/watermark_scale_factor
- memaksa pembersihan memori selama operasi
echo 3 > /proc/sys/vm/drop_caches
- pastikan Anda menggunakan kernel 4.9.29
uname -r