我们正在尝试在 Linux 3.0.3 上迁移到 Linux 软件 RAID 上的 8x SSD RAID。
我们之前的服务器配置是 96GB 内存,每月相当昂贵。我们的目标是迁移到价格约为 1/2 到 1/3 的 SSD。
我们遇到的问题是它跟不上我们的复制负载并且落后了。
经过一系列调整后,我们注意到以下 IO 负载:
你可以看到我们正在以相当稳定的速度写入……峰值大约为 180MB/s。
但我正试图弄清楚为什么我们的跌幅如此之大。一旦读取进入等式,性能就会完全下降。服务器没有做太多的读取,只是它完全破坏了我们的写入吞吐量。
我做了一些合理的 SSD 性能更改。
我们在 XFS 上使用 noatime 和 nobarrier。
我们使用的驱动器是美光 p300,每个 100GB。我们在 16 核 2.8Ghz X5570 上的 Adaptec RAID 控制器上有 8 个它们。
这是一个 RAID 0 设置。RAID 条带大小为 256k。我使用较小的条纹尺寸,这似乎是最好的价值。
IO 调度程序现在是 noop。我们也尝试了截止日期,性能大致相同。
这是我们 MySQL 配置的原始 pastebin。
http://pastebin.com/raw.php?i=Bn13Hhj9
我们所做的重要更改是:
innodb_log_file_size=10G
innodb_read_ahead=none
innodb_flush_neighbor_pages = 0
innodb_doublewrite=0
innodb_io_capacity=160000
innodb_read_io_threads=64
innodb_write_io_threads=64
我们的缓冲池大小约为 42GB ... 盒子有 48GB。
我想做的一个明显改变是使用 4k 页面。但是,这是(至少)一天的工作,因为我必须对整个数据库进行完整的 mysqldump 并重新导入。
但老实说,这可能会解决这种情况,因为理论上,我将写入/读取 1/4 的数据。但是,读取导致如此大规模的写入下降仍然让我感到困惑。
对于任何反馈,我们都表示感谢。它还可以通过触发一个想法来帮助我解决问题。