Я запускаю сервер с программным обеспечением linux raid 10. Это система с двумя процессорами и 64 ГБ оперативной памяти. Диммы 2x16GB, относящиеся к каждому из процессоров. Я хочу использовать dd для резервного копирования виртуальных машин kvm и столкнуться с серьезной проблемой io. Сначала я подумал, что это связано с рейдом, но это проблема управления памятью Linux. Вот пример:
Есть ли у кого-нибудь решение или подсказка по настройке? Вот также мой sysctl, но все значения - значения по умолчанию centos: http://i.stack.imgur.com/ZQBNG.jpg
Я делаю другой тест и делаю dd на диск вместо / dev / null. На этот раз тоже в одной команде без пв. Так что это только один процесс. dd if=/dev/vg_main_vms/AppServer_System of=AppServer_System bs=4M
sync; echo 3 > /proc/sys/vm/drop_caches
. После этого снова начинается та же игра ...Для локального dd я могу решить эту проблему с помощью параметров iflag = direct и oflag = direct. Но это не универсальное решение, потому что есть также другой доступ к файлам, например, копирование файлов на локальные общие ресурсы samba с виртуальной машины, и там я не могу использовать такие параметры. Необходимо изменить правила кеширования системных файлов, потому что это не может быть нормальным, если вы не можете копировать большие файлы без таких проблем.
Просто дикая догадка. Ваша проблема может заключаться в смывании большой грязной страницы. Попробуйте настроить /etc/sysctl.conf, например:
# vm.dirty_background_ratio contains 10, which is a percentage of total system memory, the
# number of pages at which the pdflush background writeback daemon will start writing out
# dirty data. However, for fast RAID based disk system this may cause large flushes of dirty
# memory pages. If you increase this value from 10 to 20 (a large value) will result into
# less frequent flushes:
vm.dirty_background_ratio = 1
# The value 40 is a percentage of total system memory, the number of pages at which a process
# which is generating disk writes will itself start writing out dirty data. This is nothing
# but the ratio at which dirty pages created by application disk writes will be flushed out
# to disk. A value of 40 mean that data will be written into system memory until the file
# system cache has a size of 40% of the server's RAM. So if you've 12GB ram, data will be
# written into system memory until the file system cache has a size of 4.8G. You change the
# dirty ratio as follows:
vm.dirty_ratio = 1
Тогда сделай sysctl -p
для перезагрузки снова сбросить кеши (echo 3 > /proc/sys/vm/drop_caches
).