为什么Mysql的Qcache_free_memory还很大,但是Qcache_lowmem_prunes却不为0且一直在增加?

喂马 2012-09-11 09:37:47
最近接手管理几台Mysql服务器,原先query_cache_size为4G,被我改成了512M,后来就出现了如题描述的问题
...全文
601 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
喂马 2012-09-26
  • 打赏
  • 举报
回复
我觉得你说的这种情况仅限于可能性,我还是怀疑是由于我修改query_cache_size后没有重启mysql导致的,但不能确定。
你的回复还是最给力的,谢谢!
[Quote=引用 3 楼 的回复:]

是不是有取很大的结果集 直接占用了很大的缓存,然后就缓存占光

但是缓存的数据涉及的表又频繁变更,导致这个占用大空间的sql的结果集cache频繁过期

所有就会看到虽然留有很大空闲空间,但是被换出结果集很多
[/Quote]
珠海-天堂 2012-09-13
  • 打赏
  • 举报
回复
mysql> select 134217728/1024/1024;
+---------------------+
| 134217728/1024/1024 |
+---------------------+
| 128.00000000 |
+---------------------+
1 row in set (0.00 sec)

超过128M的结果集的SQL,就不会被CACHE到。

可用内存330M也没用

+----------------------+
| 346697536 /1024/1024 |
+----------------------+
| 330.63653564 |
+----------------------+
1 row in set (0.02 sec)
珠海-天堂 2012-09-13
  • 打赏
  • 举报
回复
mysql> select 134217728/1024/1024;
+---------------------+
| 134217728/1024/1024 |
+---------------------+
| 128.00000000 |
+---------------------+
1 row in set (0.00 sec)

超过128M的结果集的SQL,就不会被CACHE到。

可用内存330M也没用

+----------------------+
| 346697536 /1024/1024 |
+----------------------+
| 330.63653564 |
+----------------------+
1 row in set (0.02 sec)
喂马 2012-09-13
  • 打赏
  • 举报
回复
不是的,内存总大小有32G,现在还有23G左右可用
[Quote=引用 4 楼 的回复:]

query_cache_size设置太大导致缓存把内存吃光了。
[/Quote]
rucypli 2012-09-12
  • 打赏
  • 举报
回复
是不是有取很大的结果集 直接占用了很大的缓存,然后就缓存占光

但是缓存的数据涉及的表又频繁变更,导致这个占用大空间的sql的结果集cache频繁过期

所有就会看到虽然留有很大空闲空间,但是被换出结果集很多
喂马 2012-09-12
  • 打赏
  • 举报
回复
(root:MYSQLNUM05:)[(none)]> show status like 'Qcache_%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 67495 |
| Qcache_free_memory | 346697536 |
| Qcache_hits | 27205076 |
| Qcache_inserts | 8413944 |
| Qcache_lowmem_prunes | 723463 |
| Qcache_not_cached | 2838399 |
| Qcache_queries_in_cache | 109282 |
| Qcache_total_blocks | 288054 |
+-------------------------+-----------+
8 rows in set (0.00 sec)
(root:MYSQLNUM05:)[(none)]> show variables like 'query_cache_%';
+------------------------------+-----------+
| Variable_name | Value |
+------------------------------+-----------+
| query_cache_limit | 134217728 |
| query_cache_min_res_unit | 2048 |
| query_cache_size | 536870912 |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+-----------+
5 rows in set (0.00 sec)



[Quote=引用 1 楼 的回复:]

从来没见过开这么大的query_cache,这个东西最好别开

贴你的语句显示
[/Quote]
rucypli 2012-09-12
  • 打赏
  • 举报
回复
从来没见过开这么大的query_cache,这个东西最好别开

贴你的语句显示
Rotel-刘志东 2012-09-12
  • 打赏
  • 举报
回复
query_cache_size设置太大导致缓存把内存吃光了。

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧