在我看来,我们似乎有一个瓶颈,我们似乎无法克服。
我们在Raid 10中设置了4个NVME驱动器
我们使用的是mariadb 10.4
我们有索引
我们的工作负载在99%的时间内都是受IO限制的,这是无法回避的事实
我在mysql工作台中查看性能控制面板时发现,SATA SSD和NVME SSD读取同一数据集的速度都在100MB左右
现在,如果我搜索2亿行(或提取2亿行),我会认为Innodb磁盘读取速度比100MB快
我的意思是这些驱动器应该能够阅读3GB(s),所以我会至少**期望看到像500MB(s)
现实情况是,我在NVME上看到的速度与我在SATA SSD上看到的速度完全相同
因此,我的问题是如何充分利用这些磁盘
以下是复制之外的唯一配置设置
sql_mode = 'NO_ENGINE_SUBSTITUTION'
max_allowed_packet = 256M
innodb_file_per_table
innodb_buffer_pool_size = 100G
innodb_log_file_size = 128M
innodb_write_io_threads = 16 // Not sure these 2 lines actually do anything
innodb_read_io_threads = 16
1条答案
按热度按时间kx5bkwkv1#
IO受限,无法回避这一事实
除非你对指数的适用性非常有信心,否则这似乎有点冒昧。
假设您是对的,这将意味着100%的写入工作负载,或者数据大小比可用RAM高出几个数量级,并且小访问均匀分布?
innodb_io_capacity提供了默认限制,您的硬件可以提供更多限制。
此外,如果您经常阅读,那么您的innodb_buffer_pool_size是不够的。