首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不能使用buff/cache?

问为什么不能使用buff/cache?
EN

Server Fault用户
提问于 2021-03-07 03:18:02
回答 2查看 321关注 0票数 0

看来mysqld分配了太多内存作为buff/cache:

代码语言:javascript
复制
free -m
              total        used        free      shared  buff/cache available
Mem:            990         448          96          36         445         326
Swap:           511         511           0

现在我无法启动httpd服务,因为它“未能分叉:无法分配内存”。

我不知道为什么会这样?为什么445M的buff/cache不能被回收并用于httpd?

EN

回答 2

Server Fault用户

发布于 2021-03-07 14:59:14

列"buff/ cache“报告用于缓冲区和缓存的内存之和。

缓冲区无法回收,因为内核需要它们来操作。

缓存可以回收,如“可用”列所示。但是,如果存在问题的缓存页是脏的,这将需要写入回收内存的当前内容来交换。但是您的交换空间是满的,“交换”行中的"free“列中的0就是见证。

总之,内存分配失败是因为交换空间已满,或者换句话说,是因为虚拟内存耗尽了。

票数 1
EN

Server Fault用户

发布于 2021-03-08 00:34:01

1GB是一台用于运行MySQL的非常小的机器。除了已经讨论过的项目之外,还可以查看my.cnf (或者MySQL的配置文件所在的地方)。查找或设置(在[mysqld]部分),如下所示:

代码语言:javascript
复制
max_connections = 10
innod_buffer_pool_size = 150M
key_buffer_size = 10M
table_open_cache = 50

把你的价值观降低到这些;这可能有助于事情的开始。

您使用的是什么版本的MySQL (或MariaDB)?在同一台机器上还有什么其他的应用程序?

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1056178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档