查询十分慢,内存 cache与buffer 突然过大

场景

        数据库压测人员发现统计查询十分慢。

        进入服务 查看free,发现  cache/buffer 十分大。

执行      

         echo 3 > /proc/sys/vm/drop_caches

          cache/buffer正常了。

         但是查询还是慢

看到mysql的innodb_buffer_poll 的大小,小于 文件大小。造成了 大量的 文件被操作系统 cache。

提高 innodb_buffer_poll大小,ok了

随便说下 磁盘读写

公司给的 hdd盘,而且还是7200转,坑死了。

那么每秒的 iops是 7200/60=120.

innodb_page 大小是 16K

每秒随机读写是  120*16 = 1920K,最多也就2M。一小时也就7.2G

24G数据,需要读 3个多小时。

把24G数据加载到内存,只用了 573秒。

那么每秒循序读是 573秒

24*1024*/573 = 43M/S

这个速度还是无法接受。

猜你喜欢

转载自jahu.iteye.com/blog/2343913