首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
V2EX  ›  MySQL

阿里云 ECS 上安装的 MySQL 卡

  •  
  •   studentht · 2018-01-01 20:05:10 +08:00 · 1633 次点击
    这是一个创建于 418 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题: 一台 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 友,大家有遇到这种情况吗?

    16 回复  |  直到 2018-01-03 15:37:14 +08:00
        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   2018-01-02 10:08:26 +08:00   ♥ 1
    @opengps ECS 是 io 优化型实例,硬盘是 SSD (阿里云宣称的),而且 ECS 上没有什么大量 io 读写的程序,监控 io 读写频率和数据量都很低
        6
    studentht   2018-01-02 10:14:08 +08:00
    @kohos 补充一下,在 osx 上,sequel-pro 也会出现卡的症状,服务器端'wait_timeout', '28800'。
    不过有可能是 @likuku 说到的外网复杂的网络环境导致丢包的,我调整这个客户端配置试试看
        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   2018-01-03 10:38:34 +08:00
    @kohos @liuzhedash 我测试了,应该就是连接丢失的问题。有个问题,为什么连接丢失了,会导致 mysql 客户端卡这么久了,是因为 `DBMS connection time out (in seconds)` 这个选项设置有关吗?
        12
    studentht   2018-01-03 11:03:17 +08:00
    @opengps 我觉得应该不是你理解的那样,io 优化实例是针对 ECS,与使用什么硬盘无关。
        13
    kohos   2018-01-03 11:32:55 +08:00
    @studentht 应该是,我刚刚把 timeout 改成了 10 秒,长时间空闲之后的查询就只卡了 10 多秒,但我还是宁愿改 keep-alive 为 30 秒,没这耐心。因特网上哪个节点会那么好维持一个 10 多分钟都没有数据传输的 TCP 连接
        14
    studentht   2018-01-03 15:27:39 +08:00
    @kohos 😀。奇怪 workbench 默认 keep-alive 时间为什么设置的这么长
        15
    kohos   2018-01-03 15:33:48 +08:00
    @studentht 因为一般都是连接本机……其实现在连互联网 linux 系统的 MySQL 服务器最好是通过 Standard TCP/IP over SSH,SSH 用密钥文件登录,客户端经过 SSH 之后再本机连接 MySQL,这样是最安全的
        16
    kohos   2018-01-03 15:37:14 +08:00
    @kohos 补充一下其实也不是最安全,是比较安全。往上还有 SSL 证书登录等
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   821 人在线   最高记录 4385   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 23:07 · PVG 07:07 · LAX 15:07 · JFK 18:07
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1