Сведения о SSD : Серия KIOXIA XG8 (M.2) с максимальной скоростью последовательного чтения 7000 ГБ/с (56 Гбит/с).
Первоначально я использовал libaio в режиме O_DIRECT и смог читать достаточно быстро (~ 50 Гбит/с), чтобы мое приложение работало. Поскольку режим O_DIRECT требует соблюдения требований к выравниванию, я ищу альтернативы. В режиме O_RDONLY я могу прочитать файл с требуемым смещением, но это очень медленно (причина может заключаться в том, что aio в режимах, отличных от O_DIRECT, больше не является асинхронным вводом-выводом. Информационный документ io_uring.
В качестве альтернативы (лучше) я использую liburing для чтения моего файла, я использую режим O_RDONLY, поскольку он позволяет читать с любым смещением. Однако скорость чтения слишком низкая.
Вот мой код:
Код: Выделить всё
#include
#include
#include
#include
#include
#include
#include
#include "liburing.h"
#include
#include
#include
int main()
{
uint64_t block_size = 1 res: 1073741824 Reading speed: 6.41963 Gbps
cqe->res: 1073741824 Reading speed: 7.44832 Gbps
cqe->res: 1073741824 Reading speed: 7.40503 Gbps
cqe->res: 1073741824 Reading speed: 7.36463 Gbps
cqe->res: 1073741824 Reading speed: 6.78501 Gbps
cqe->res: 1073741824 Reading speed: 7.10513 Gbps
cqe->res: 1073741824 Reading speed: 7.05038 Gbps
cqe->res: 1073741824 Reading speed: 6.10796 Gbps
cqe->res: 1073741824 Reading speed: 5.63116 Gbps
cqe->res: 1073741824 Reading speed: 5.54613 Gbps
.
.
.
Код: Выделить всё
cqe->res: 1073741824 Reading speed: 30.1049 Gbps
cqe->res: 1073741824 Reading speed: 76.969 Gbps
cqe->res: 1073741824 Reading speed: 74.8756 Gbps
cqe->res: 1073741824 Reading speed: 76.9209 Gbps
cqe->res: 1073741824 Reading speed: 77.1421 Gbps
cqe->res: 1073741824 Reading speed: 76.0599 Gbps
cqe->res: 1073741824 Reading speed: 77.7633 Gbps
cqe->res: 1073741824 Reading speed: 77.9113 Gbps
cqe->res: 1073741824 Reading speed: 75.8365 Gbps
cqe->res: 1073741824 Reading speed: 77.1777 Gbps
cqe->res: 1073741824 Reading speed: 76.6224 Gbps
cqe->res: 1073741824 Reading speed: 77.0741 Gbps
cqe->res: 1073741824 Reading speed: 77.0687 Gbps
cqe->res: 1073741824 Reading speed: 77.3948 Gbps
cqe->res: 1073741824 Reading speed: 76.1512 Gbps
cqe->res: 1073741824 Reading speed: 77.502 Gbps
cqe->res: 1073741824 Reading speed: 77.3421 Gbps
cqe->res: 1073741824 Reading speed: 77.4055 Gbps
cqe->res: 1073741824 Reading speed: 75.9798 Gbps
cqe->res: 1073741824 Reading speed: 55.6069 Gbps
cqe->res: 1073741824 Reading speed: 5.94714 Gbps
cqe->res: 1073741824 Reading speed: 32.7055 Gbps
cqe->res: 1073741824 Reading speed: 70.8435 Gbps
cqe->res: 1073741824 Reading speed: 23.822 Gbps
cqe->res: 1073741824 Reading speed: 5.69492 Gbps
cqe->res: 1073741824 Reading speed: 6.65288 Gbps
cqe->res: 1073741824 Reading speed: 6.76708 Gbps
cqe->res: 1073741824 Reading speed: 7.91575 Gbps
cqe->res: 1073741824 Reading speed: 6.29257 Gbps
cqe->res: 1073741824 Reading speed: 6.2675 Gbps
cqe->res: 1073741824 Reading speed: 7.31762 Gbps
cqe->res: 1073741824 Reading speed: 6.35138 Gbps
cqe->res: 1073741824 Reading speed: 7.52077 Gbps
cqe->res: 1073741824 Reading speed: 7.20884 Gbps
cqe->res: 1073741824 Reading speed: 6.05534 Gbps
cqe->res: 1073741824 Reading speed: 5.80964 Gbps
cqe->res: 1073741824 Reading speed: 6.58119 Gbps
cqe->res: 1073741824 Reading speed: 8.65097 Gbps
cqe->res: 1073741824 Reading speed: 27.1533 Gbps
cqe->res: 1073741824 Reading speed: 6.76254 Gbps
cqe->res: 1073741824 Reading speed: 5.9082 Gbps
cqe->res: 1073741824 Reading speed: 7.45788 Gbps
cqe->res: 1073741824 Reading speed: 6.89272 Gbps
cqe->res: 1073741824 Reading speed: 5.76414 Gbps
cqe->res: 1073741824 Reading speed: 5.65644 Gbps
cqe->res: 1073741824 Reading speed: 7.21536 Gbps
cqe->res: 1073741824 Reading speed: 6.09685 Gbps
cqe->res: 1073741824 Reading speed: 6.44203 Gbps
cqe->res: 1073741824 Reading speed: 6.97692 Gbps
.
.
.
Можно ли улучшить код, чтобы обеспечить «лучшую» скорость чтения? Чтобы количественно оценить «лучше», скажем, как можно ближе к максимальной скорости чтения, поддерживаемой SSD?
Подробнее здесь: https://stackoverflow.com/questions/791 ... g-liburing
Мобильная версия