【问题标题】:My Google Cloud SQL instance connection and/or queries are too slow我的 Google Cloud SQL 实例连接和/或查询速度太慢
【发布时间】:2019-07-11 19:08:06
【问题描述】:

在我的工作中,我们的任务是查看是否可以将我们的 App 数据库从当前服务器迁移到 Google Cloud SQL 实例。我创建了 GCP,配置了实例并导入了数据库。

问题是我已经从我的项目(一个 CakePHP localhost 应用程序)连接到 gcloud 中的数据库,并且在运行了一些查询后我注意到它们花费了很多时间并且视图的渲染非常慢的。我已经升级了实例的存储(以获得更好的读/写速度)和内核/内存,但没有结果。

以下是一些查询及其花费的时间:

Query.                                             Time.    Affected.

GCloud
SELECT * FROM clients WHERE company_id = 3711;     50ms.    3rows.

Localhost
SELECT * FROM clients WHERE company_id = 3711;     1ms.     3rows.

还有我认为的 CakePHP DebugKit 计时器响应:

GCloud    - Controller Action ---- 317.55 ms.
Localhost - Controller Action ---- 7.44   ms. 

使用我的localhost 中的GCloud164 ms 进行另一个视图耗时3 秒以上。

我使用了us-central1 区域,已经升级了 SSD、内核、RAM,并使用了类似这样的小查询,但无济于事。我认为这可能与延迟有关,但我没有丝毫的想法。

我从墨西哥查询,具体是从哈利斯科州查询。

我的实例是 2 核 13gb 内存 db-n1-highmem-2

在我的本地主机 SELECT @@log_binreturns a 0.

文件:

php.ini

my.cnf

SHOW GLOBAL STATUS

SHOW GLOBAL VARIABLES

SHOW FULL PROCESSLIST

EXPLAIN SELECT SQL_NO_CACHE * FROM clients WHERE company_id = 3711;

1   SIMPLE  clients NULL    ref find_by_id,clients_modified,company_id_3,clients_by_creator,clients_by_owner    find_by_id  4   const   3   100.00  Using where

SHOW INDEX FROM clients;

Table   non_unique  key_name            seq_in_index    column_name         collation   cardinality sub_part    packed  null    index_type
clients 0           PRIMARY             1               id                  A           685571      NULL        NULL            BTREE       
clients 0           PRIMARY             2               user_id             A           685571      NULL        NULL            BTREE       
clients 0           PRIMARY             3               company_id          A           685571      NULL        NULL            BTREE       
clients 0           find_by_id          1               company_id          A           1159        NULL        NULL            BTREE       
clients 0           find_by_id          2               id                  A           685571      NULL        NULL            BTREE       
clients 1           clients_modified    1               company_id          A           1587        NULL        NULL            BTREE       
clients 1           clients_modified    2               modified            A           512088      NULL        NULL    YES     BTREE       
clients 1           company_id_3        1               company_id          A           1254        NULL        NULL            BTREE       
clients 1           company_id_3        2               prospectus          A           3642        NULL        NULL            BTREE       
clients 1           company_id_3        3               last_update         A           303012      NULL        NULL    YES     BTREE       
clients 1           clients_by_creator  1               company_id          A           1503        NULL        NULL            BTREE       
clients 1           clients_by_creator  2               user_id             A           3577        NULL        NULL            BTREE       
clients 1           clients_by_owner    1               company_id          A           1423        NULL        NULL            BTREE       
clients 1           clients_by_owner    2               user_assigned_id    A           3949        NULL        NULL            BTREE       
clients 1           company_id_3        3               last_update         A           303012      NULL        NULL    YES     BTREE       
clients 1           clients_by_creator  1               company_id          A           1503        NULL        NULL            BTREE       
clients 1           clients_by_creator  2               user_id             A           3577        NULL        NULL            BTREE       
clients 1           clients_by_owner    1               company_id          A           1423        NULL        NULL            BTREE       
clients 1           clients_by_owner    2               user_assigned_id    A           3949        NULL        NULL            BTREE       

【问题讨论】:

  • 附加信息请求。在 pastebin.com 上发布并分享链接。 Google MODEL 或 RAM 大小和您的 Google MySQL 主机服务器上可用的内核数量 A) 完整(未编辑)my.cnf 或 my.ini 文本结果: B) 显示全球状态;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序;用于服务器工作负载调整分析。
  • 地理,请 - 你在哪里;它位于哪里。 49 毫秒可能意味着您在美国的东海岸或西海岸。
  • 请提供 Google 型号或 RAM 大小以及您的 Google MySQL 主机服务器上可用的内核数量。我们可以看到你有 SSD 存储。谢谢
  • 在您的本地主机上,从 MySQL 命令提示符下,SELECT @@log_bin 的结果是什么; ?
  • 完成,如果您还需要什么,请告诉我。非常感谢

标签: php mysql performance gcloud


【解决方案1】:

Rate Per Second=RPS - 为您的 Google Cloud Database 标志考虑的建议 - my.cnf [mysdld] 部分

innodb_lru_scan_depth=100  # from 2048 to conserve 95% CPU cycles used for function
innodb_flush_neighbors=0  # from 2 with SSD storage no need to look for neighbors
innodb_buffer_pool_size=4G  # from ~ 10G to support less than 1G of data, reduce mgmt cycles
innodb_old_blocks_time=20000  # from 1000 to reduce select_scan RPhr of 1,395

实施+24小时使用后请提供反馈。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 2015-12-14
    • 2017-10-21
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多