如歌减少mysql连接过程中延迟过高问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如歌减少mysql连接过程中延迟过高问题相关的知识,希望对你有一定的参考价值。

如歌减少mysql连接过程中延迟过高问题,公司内部使用一款软件需要跟美国那边的mysql连接,然后发现延迟都在4秒左右;
有什么办法提高速度降低延迟吗?
现在已经采用的办法是skip_name_resolve功能打开,但是并没有什么变化,有其他办法能做这个处理吗?能降低到1秒就可以了!

参考技术A MYSQL_PCONNECT(); //数据库持久连接
特点是: 当前脚本执行完毕后, 该连接标识不会被释放掉, 下一个脚本文件还可以使用
如果是 MYSQL_CONNECT(); 即使没有使用 MYSQL_CLOSE()函数关闭数据库连接, 当脚本执行完毕后也会自动断开连接
参考技术B 1、配置文件增加:skip-name-resolve
2、使用mysql连接池

linux----CPU使用率过高问题定位过程

 

1、确定本地网络是否存在延迟或丢包情况

  

 

  关注点:

    1、响应时间

    2、丢包率

 

2、TOP命令(这里先关注CUP使用情况,后期再详细说明)

  

 

   从上图我们可以看出,3373的进程占用了   %cpu   313.2 

  说明:

    由于该服务器CPU逻辑核数为4核,总共为  400    该进程   占用了   313.2/400

  这里我们获取的了进程ID为3373

 

3、查看线程ID

  ps -mp 进程id -o THREAD,tid,time | sort -rn

  

 

   从上图我们可以看出

  1、有占了 cpu 95.8的线程,但是没有TID,这些我们忽略就行

  2、重点关注蓝色框中带有TID的线程

 

4、把线程ID转化为16进制

  printf   \'%x\\n\'   线程id

  

 

   得到了d35这样的一个线程ID

 

5、根据线程的16进程表达来定位是个什么东西

  jstack 进程id | grep 线程16进制 -A60

  

 

   得出了此类信息

   这里是一个垃圾回收的线程,由于在我的服务器中,实在找不到占用CPU高的线程

  所以就找了这么一个东西来充当了

  那么就有同学问了,这里的东西,我们测试人员也看不懂啊,咋办

  没事,我也不懂,都是这样截图给开发,让他帮看看是一个什么东西

 

以上是关于如歌减少mysql连接过程中延迟过高问题的主要内容,如果未能解决你的问题,请参考以下文章

压力测试过程中MySQL服务CPU占用率过高的问题排查思路

MySQL存储过程

mysqld占用CPU过高是啥原因

大数据mysql 为啥io过高

mysql长连接跨网段问题

mysql主从复制延迟问题