zoukankan      html  css  js  c++  java
  • Tidb数据库导入数据出现oom问题

    今天使用insert操作向tidb中插入数据,发现正在导入的过程中出现如下错误:

    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

    也就是说客户端不能连接mysql服务器端。有的人会想到可能是mysql客户端连接至服务器端超时导致的:

    mysql> show variables like '%connect%';
    +-----------------------------------------------+-----------------+
    | Variable_name                                 | Value           |
    +-----------------------------------------------+-----------------+
    | connect_timeout                               | 10              |

    一般情况下我的错误也有可能由connect_timeout时间太短这种情况导致的。比如查询数据集比较大的数据的时候。

    不过针对这个错误tidb官方也有另外的解释,看看是不是oom问题,因此我就排查了一下:

    [root@:vg_adn_tidbCkhsTest /data/splits]#dmesg -T | grep -i oom
    [Thu Nov 29 11:16:42 2018] mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
    [Thu Nov 29 11:16:42 2018]  [<ffffffff8bd97c44>] oom_kill_process+0x254/0x3d0
    [Thu Nov 29 11:16:42 2018] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name
    [Thu Nov 29 12:05:50 2018] mysqld invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0
    [Thu Nov 29 12:05:50 2018]  [<ffffffff8bd97c44>] oom_kill_process+0x254/0x3d0
    [Thu Nov 29 12:05:51 2018] [ pid ]   uid  tgid total_vm      rss nr_ptes swapents oom_score_adj name

    果然是内存溢出问题,我仔细看了一下,发现mysql程序是比较消耗内存的,因此被内核给干掉了。

    但是数据还必须继续导入才行,那我们只好停止一些暂时不用的程序,接着导入数据

    然后导入数据就成功了。

    下面是官方给出的问题解决方法:

    因此我们下次要注意二点:

    1、在导入数据的时候,比较消耗内存,因此我们先给程序释放空间运行

    2、开启swap功能

  • 相关阅读:
    WEB浏览器与服务器通讯过程
    lua及luci学习
    让apache2不开机启动,管理Ubuntu的开机启动项
    在linux中如何调试C语言程序
    如何去除configure的默认选择-g O2
    C语言使用SQLite3数据库
    Linux下的C程序如何调用系统命令,并获取系统的输出信息到C程序中
    Opencv step by step
    Opencv step by step
    Opencv step by step
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10186373.html
Copyright © 2011-2022 走看看