社区
MySQL
帖子详情
为什么Mysql的Qcache_free_memory还很大,但是Qcache_lowmem_prunes却不为0且一直在增加?
喂马
2012-09-11 09:37:47
最近接手管理几台Mysql服务器,原先query_cache_size为4G,被我改成了512M,后来就出现了如题描述的问题
...全文
642
8
打赏
收藏
为什么Mysql的Qcache_free_memory还很大,但是Qcache_lowmem_prunes却不为0且一直在增加?
最近接手管理几台Mysql服务器,原先query_cache_size为4G,被我改成了512M,后来就出现了如题描述的问题
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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设置太大导致缓存把内存吃光了。
MySQL
实训5.doc
* Q
cache
_
free
_
memory
:空闲缓冲内存大小 * Q
cache
_hits:缓冲命中次数 * Q
cache
_inserts:缓冲插入次数 * Q
cache
_
lowmem
_
pru
nes
:缓冲回收次数 * Q
cache
_not_
cache
d:缓冲未命中次数 * Q
cache
_queries_in_
cache
:...
MySQL
形考任务5
5. 使用 SHOW 语句查询查询缓存指标Q
cache
_
free
_blocks、Q
cache
_
free
_
memory
、Q
cache
_hits、Q
cache
_inserts、Q
cache
_
lowmem
_
pru
nes
、Q
cache
_not_
cache
d、Q
cache
_queries_in_
cache
、Q
cache
_total_blocks。 结论 ...
如何对查询缓存进行维护和调优[文].pdf
如果Q
cache
_
free
_
memory
较小且Q
cache
_
lowmem
_
pru
nes
增长快,可能是因为工作负载的内存需求超过了分配的内存。如果有很多自由块且碎片少,但命中率低,可能意味着工作负载不适宜使用缓存。 8. **不可缓存的查询**: ...
mysql
常用配置参数和状态变量
8. Q
cache
_
free
_
memory
:Query
Cache
中目前剩余的内存大小。通过这个参数可以较为准确的观察出当前系统中的 Query
Cache
内存大小是否足够,是否需要
增加
还是过多了。 9. Q
cache
_hits:多少次命中。通过这个参数...
linux 高负载下
mysql
数据库优化
通过监控`Q
cache
_inserts`, `Q
cache
_hits`, `Q
cache
_
lowmem
_
pru
nes
`, `Q
cache
_
free
_blocks`等状态变量,可以调整合适的缓存大小。如果`Q
cache
_
lowmem
_
pru
nes
`值高,表示缓冲不足,应
增加
`query_
cache
_size`;而`...
MySQL
56,940
社区成员
56,758
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章