
如题: 一台 ECS,2G 内存,1M 带宽,Centos 7,安装了 MySQL 5.7,其他的主要就有运行了一个 wordpress。 系统负载很低,
[root@...... ~]# uptime 19:00:00 up 14 days, 00:00, 1 user, load average: 0.07, 0.08, 0.06 [root@...... ~]# free -m total used free shared buff/cache available Mem: 1839 978 156 2 704 690 Swap: 0 0 0 现在有一个问题,就是用 mysql 客户端(主要是 workbench,其他的 Navicat Essentials 和 SQLyog Community 都有试过)远程连接 ECS 上的 MySQL Server(直接 TCP 端口连接,不是 ssh 登陆后连 localhost),每隔一段时间后,运行一句 sql 就会卡半天,等这一句执行完了,后面一段时间运行 sql 就会很快。再休息一段时间不执行 sql,过一段时间再执行一句 sql 又会卡,像 MySQL Server 休眠了一样。
我观察 workbench 显示卡的 sql,显示:
Duration / Fetch 0.047 sec / 0.000 sec 就是说其实执行这条 sql 并没有花多少时间,但是问题是整个查询过程确实费了不少时间,界面一直卡着。
万能的 V 友,大家有遇到这种情况吗?
1 kohos 2018-01-01 21:13:54 +08:00 你试一下去 Edit - Preferences - SQL Editor - MySQL Session 中的 DBMS connection keep-alive interval 设置改成 30 试试。我觉得是时间长了连接丢失了 |
2 tt0411 2018-01-01 21:43:17 +08:00 最好在服务器上对比测试一下, 确定延时是查询造成的还是网络造成的 |
3 likuku 2018-01-01 21:47:18 +08:00 远程直连数据库...国内网络这种尿性,生产环境 /正式环境,也没人这么用 |
4 opengps 2018-01-02 08:38:01 +08:00 首先提醒一句,所有的云服务器都是虚拟机,其硬盘性能( iops )都低于笔记本硬盘的十分之一(估算) 这也是我给他人介绍云服务器时候常见的误区,这么理解把,虚拟机里的是虚拟硬盘,毕竟是浪费了一层效率的,iops 下降是必然,甚至 ssd 的云服务器才等同于普通 5400 转的笔记本硬盘 iops 参数 |
5 studentht OP @opengps ECS 是 io 优化型实例,硬盘是 SSD (阿里云宣称的),而且 ECS 上没有什么大量 io 读写的程序,监控 io 读写频率和数据量都很低 |
6 studentht OP |
7 opengps 2018-01-02 10:40:15 +08:00 @studentht io 优化型不等于 ssd,io 优化是通过其他方式,比如阵列来实现的提高 iops,你可以测试下,实际上还是低于物理 5400 转磁盘。优化的结果确实是高于普通机械盘的虚拟硬盘文件,人家没说错,但也回避了效率低的问题 |
8 opengps 2018-01-02 10:41:23 +08:00 说完才反映过来,你的情况是数据盘 ssd,系统盘优化型 io 吧。 数据盘的 ssd 可能只等于普通电脑装普通 ssd 的效果 |
9 liuzhedash 2018-01-02 10:57:37 +08:00 @kohos #1 根据描述的情况看,1 楼百分之九十九答对了 |
10 xbdsky 2018-01-02 12:37:47 +08:00 1g 小内存,mysql 经常崩溃 |
11 studentht OP |
13 kohos 2018-01-03 11:32:55 +08:00 @studentht 应该是,我刚刚把 timeout 改成了 10 秒,长时间空闲之后的查询就只卡了 10 多秒,但我还是宁愿改 keep-alive 为 30 秒,没这耐心。因特网上哪个节点会那么好维持一个 10 多分钟都没有数据传输的 TCP 连接 |