我们的服务使用db-n1-standard-32
实例。 IOPS限制为读取40,000,写入30,000。
但是我们的服务似乎限制在5000左右。
参见screenshot。
我认为它来自MySQL的innodb_io_capacity
。
mysql> show variables like '%capacity%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| innodb_io_capacity | 5000 |
| innodb_io_capacity_max | 10000 |
+------------------------+-------+
2 rows in set (0.02 sec)
我可以更改值吗?
答案 0 :(得分:1)
目前尚未在list中公开。如果要将其设置为用户可更改标志,则应提交feature request。 Cloud SQL是一项托管服务,大多数标志不会向用户公开,以确保服务的完整性和可用性,例如如果未正确使用某些标志,可能会导致停机以及某些意外行为。
答案 1 :(得分:0)
我正在为Google Cloud Platform工作。为了进一步调查此问题,我认为最好检查您的项目和特定的Cloud SQL MySQL实例。
我建议您通过提供项目编号和Cloud SQL实例ID来打开一个私人发行。请使用以下组件:
https://issuetracker.google.com/issues/new?component=187202
创建完成后,请告诉我,我将尽快开始进行处理。同时,请向我提供以下信息:
如上所述,请向我提供信息,并在创建私人问题后通知我,以便我尽快开始进行研究。
答案 2 :(得分:0)
IOPS不受“ innodb_io_capacity”值的限制。
正如Christopher所说,不可能更改该值,并且有充分的理由,因为它不仅不能显着提高性能,而且还会导致其他问题,例如每次事务处理延迟变得更加可变,从而影响许多工作负载
我们已经进行了广泛的测试,以确定this和其他MySQL标志的值。提高此限制不会提高性能,这表明在达到IOPS的读取和写入限制级别之前,还存在其他瓶颈。
InnoDB使用的是doublewrite缓冲区,该缓冲区具有硬编码的限制,无法扩展到这些级别。这用于防止某些类型的故障后数据损坏。我们希望能够禁用此功能,如果默认情况下MySQL使用的16KB块大小的写操作是原子的,则应该可以禁用此功能,尽管我们不能保证一定会将其作为Cloud SQL的一部分使用。当前,客户可以在Compute Engine实例中管理MySQL,以利用this BETA feature的优势。