今天登录服务器,发现怎么清理cache内存,服务器内存始终都不释放,很是纳闷,黑人问号???
一直使用 echo 3 > /proc/sys/vm/drop_caches 命令清理内存,发现内存 一直都是在698M。
1、开始分析问题,使用top命令查看。
2、然后 shift+m 按内存占用大小排序。
3、发现原来是pgsql数据库一直在占用内存。
4、查阅有关pgsql占用内存的资料,发现,果然在pgsql数据库中有一个shared_buffers的配置。(shared_buffers:这是数据库服务用于共享内存缓冲区的大小。如果这个值太低,数据库会使用更多的磁盘,这会导致更慢,但如果它太高,可能会产生高内存利用率。根据文档,如果您有一个具有 1GB 或更大 RAM 的专用数据库服务器,shared_buffers 的合理起始值是系统内存的 25%)
5、登录pgsql数据库,切换到postgres用户。
su - postgres
6、修改数据库文件
vim /data/postgresql/postgresql-11.6/data/postgresql.conf
shared_buffers = 32GB
(因为服务器内存为128GB,而shared_buffers 的合理起始值是系统内存的 25%,故在这里设置为32GB)
7、重启pgsql服务,然后清理内存。
systemctl restart pgsql
echo 3 > /proc/sys/vm/drop_caches
8、发现内存果然已经成功释放了。
刚看到一个关于猫猫的文案,分享出来一起看。
配上猫猫这个表情,真的是绝了
标签:数据库,不掉,pgsql,内存,shared,服务器,buffers From: https://www.cnblogs.com/likecoke/p/17095589.html