我们的服务器在黑色星期五的这几天偶尔会出现负载突然变高(高达20+)的情况,现在已知redis在dump时会引起io wait,redis以及memcached连接数突增,之后memcached会出现超时,再接着数据库就挂掉,负载又上了新的台阶,感觉和redis有关系,有人知道redis的dump为什么有这么大的影响吗?
黄舟2017-04-22 08:58:19
dump数据的时候,大量磁盘io操作,io繁忙,导致io_wait比较高,可能导致负载变高。猜想你们服务器负载高的时候,cpu此时应该不繁忙吧?如果是cpu空闲,而io繁忙,估计就是redis的dump操作导致的大量io了。你们可以试着优化一下redis的dump相关的配置,试着dump的时间间隔调小一些
黄舟2017-04-22 08:58:19
服务器高负载无非就是某项资源不够用了。CPU资源,磁盘资源,网络资源。
redis的dump肯定是要有IO操作的。看看磁盘读写就知道了。
由于不知道楼主的详细部署情况,redis是本机?mysql也是本机?感觉mysql一般都不会放在业务机器上吧。如果是IO高负载按理说应该不会影响到别的机器的mysql。
连接数突增,超时,可以检查tcp的 time_wait数量。感觉这个可能性更大一点,比较像是某个服务短连接调用,一旦故障这边主动断开大量time_wait耗尽网络资源导致其他服务也不可用。