症状描述:服务器出现数据库连接工具上不去,ssh可以登录,接口返回数据库信息空,仿佛数据库被清,top查看没有异常,服务器报硬盘100%。
1、有一个项目中需要在服务端生成保存图片
在服务端安装了imagick插件
中间用带了很多类似下图的new 方法
再请求达到一定量的时候,服务器报硬盘100%,查看之后发现是tmp下面的这个文件巨大,之前是有六七个magick开头的文件,每个1.5G~2G左右,我估计是因为实例化完,当前进程还没有死,又继续使用之前创建的对象处理新的请求,导致文件不断变大,有利有弊
后来我在代码层面每次使用完时候都clean和destroy,似乎有所改善
文件大小如上图大小。
2、上面解决之后磁盘没有报警,但数据库还是连接不上
Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
估计是数据库连接数太多,先重启数据库服务,再查看具体问题
网上说是因为这个
在my.cnf配置文件中的[mysqld]区域添加skip-name-resolve,即跳过mysql连接的DNS反向解析功能,这样能很好地提高mysql性能。在这种情况下,就只能使用MySQL授权表中的IP来连接mysql服务了。
领取专属 10元无门槛券
私享最新 技术干货