2013 Lost connection to MySQL server at 'handshake: reading initial communication packet'

           问题描述:

           客户端访问mycat假死,退出后重连mycat间歇性出现下述错误:

           2013 Lost connection to MySQL server at 'handshake: reading initial communication packet',system error:34


       问题定位:

  • 1. 先检查了mycat的错误日志mycat.log,并未发现异常。
  • 2. 检查mycat后端mysql的运行状态和错误日志,未发现异常。
  • 3. 检查操作系统内存发现有SWAP使用
  • 4. 检查mycat的wrapper.log,发现有Exception in thread "$_NIOREACTOR-1-RW" java.lang.OutOfMemoryError: Direct buffer memory

 解决方法:

         重启mycat后,客户端访问mycat假死的现象消失。


检查mycat的配置后发现,操作系统不足2G的内存,但mycat的wrapper.conf中配置的MaxDirectMemorySize=2G。

        调整mycat内存设置后,客户端访问mycat假死问题暂未重现。

        wrapper.java.additional.3=-XX:MaxPermSize=64M
        wrapper.java.additional.4=-XX:+AggressiveOpts
        wrapper.java.additional.5=-XX:MaxDirectMemorySize=2G

你可能感兴趣的:(MySQL)