innodb_buffer_pool_size 不减少 iowait
innodb_buffer_pool_size not reducing iowait
当 运行 在我的服务器上查询时,我看到 mysqld
进程使用了大量的 iowait CPU。我已经阅读了有关 innodb_buffer_pool_size
设置的信息,使该值高于默认的 128M 应该会对减少 iowait 产生积极影响(因为它将在内存中缓存数据库信息)。
我已将 innodb_buffer_pool_size
的值更改为 3GB(并通过检查 运行 mysql
中的变量验证了设置),以及我的 mysqld
进程相应增加,但我仍然看到非常高的 iowait 数字(并且 mysql 只有很小的常驻内存占用)。
除了 innodb_buffer_pool_size
之外,还有其他东西可以帮助减少 iowait(对于读取操作)。
事实证明,我是 运行 的其中一个查询中有一个 Order By
子句,并且由于我返回的数据大小,Order By
强制排序在磁盘上完成(而不是在内存中)。我的解决方法是从查询中删除 Order By
,然后在我的应用程序的内存中进行排序。
当 运行 在我的服务器上查询时,我看到 mysqld
进程使用了大量的 iowait CPU。我已经阅读了有关 innodb_buffer_pool_size
设置的信息,使该值高于默认的 128M 应该会对减少 iowait 产生积极影响(因为它将在内存中缓存数据库信息)。
我已将 innodb_buffer_pool_size
的值更改为 3GB(并通过检查 运行 mysql
中的变量验证了设置),以及我的 mysqld
进程相应增加,但我仍然看到非常高的 iowait 数字(并且 mysql 只有很小的常驻内存占用)。
除了 innodb_buffer_pool_size
之外,还有其他东西可以帮助减少 iowait(对于读取操作)。
事实证明,我是 运行 的其中一个查询中有一个 Order By
子句,并且由于我返回的数据大小,Order By
强制排序在磁盘上完成(而不是在内存中)。我的解决方法是从查询中删除 Order By
,然后在我的应用程序的内存中进行排序。