У меня есть сервер HPE ProLiant DL360 Gen9, технические характеристики:
- Процессор: процессоры Intel Xeon 2 E5-2687 Вт v3 @ 3,10 ГГц, 25 МБ кэш-памяти L3, 10 ядер ea
- Оперативная память: 8x 32 ГБ PC4-17000 DDR4 2133 МГц CAS-15 1,2 В SDRAM DIMM (всего 256 ГБ)
(полная спецификация сервера здесь)
Сервер работает под управлением CentOS 7.2
с ядром 3.10.0-327.36.3.el7.x86_64
.
Я смонтировал ramdisk tmpfs на сервере, используя следующую запись в /etc/fstab
:
tmpfs /ramdisk tmpfs noauto,user 0 0
Чтобы проверить запись на этот виртуальный диск, я запустил следующую команду:
time sh -c "dd if=/dev/zero of=/ramdisk/120GB_testfile bs=4k count=30000000 && sync"
Он сообщает, что записал 122 880 000 000 байтов за 58 857 с, что составляет скорость записи 1991 МБ / с.
Учитывая, что скорость записи этой памяти составляет 17 ГБ / с (согласно этому описанию скоростей передачи данных в памяти), меня удивляет значительно более низкая скорость записи на мой ramdisk tmpfs. Может кто-нибудь объяснить несоответствие и предложить другой способ записи в файл в памяти, который быстрее?
Благодарю.
ОБНОВИТЬ
Я отключил vm.swappiness
, но это не принесло пользы (1712 МБ / с).
Я также попытался увеличить размер блока (bs=256k count=468750
), но, опять же, не так много эффекта (2087 MiB/sec).