PostgreSQL内存使用增长观察
磨砺技术珠矶,践行数据之道,追求卓越价值
回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页
[作者 高健@博客园 luckyjackgao@gmail.com]
说是内存增长,其实未必是。但是客户有时候喜欢用free命令来查看,为何更好地了解,进行以下试验。
运行PostgreSQL前:
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
启动PostgreSQL后:
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
然后,在同一台机器上开启一个psql之后:
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
一次插入100M数据:
postgres=# \d test01;
Table "public.test01"
Column | Type | Modifiers
--------+-----------------+-----------
id | integer |
val | character() | postgres=# \d test02;
Table "public.test02"
Column | Type | Modifiers
--------+-----------------+-----------
id | integer |
val | character() | postgres=#
单纯地查询已经耗费内存了:
postgres=# select count(*) from test01;
count
-------- ( row) postgres=#
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
插入100M数据看看:
postgres=# insert into test01 (select * from test01 limit );
INSERT
postgres=#
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
此时,单纯看free部分的内存快没有了。
再重复一次,插入100M数据,free内存反而有所增加
postgres=# insert into test01 (select * from test01 limit 102400);
INSERT 0 102400
postgres=#
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
再折腾几次,多次连续插入100M数据后:
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
还不过瘾,再来一次插入1200M数据:
仍然艰难地转下去了:
postgres=# insert into test01 (select * from test01);
INSERT
postgres=#
[root@server ~]# free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
[root@server ~]#
重新启动来看看:
现在,数据已经有2400M了,再次插入,会如何?要知道我的shared_buffers很小,才32MB:
由于插入数据量过大,导致系统崩溃,发生OOM错误。
[作者 高健@博客园 luckyjackgao@gmail.com]
回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页
磨砺技术珠矶,践行数据之道,追求卓越价值
PostgreSQL内存使用增长观察的更多相关文章
- SqlServr进程内存使用增长的解决办法
SqlServr进程使用的内存缓慢增长是正常的现象,但在服务器长时间不重启或sql服务不重启的情况下,最终,这个进程会耗尽所有的内存,导致所有终端无法正常与数据库交互. 1.设置数据库最大使用内存的值 ...
- Cesium 一个导致浏览器内存一直增长的方法
为了实时更改模型的位置,给模型附上ID,后面判断如果传来的数据中没有已经创建的模型,删掉该模型时用到方法:viewer.entities.removeById(modelId);和viewer.ent ...
- 从内存的角度观察 堆、栈、全局区(静态区)(static)、文字常量区、程序代码区
之前写了一篇堆栈的,这里再补充下内存其他的区域 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一般由程 ...
- PostgreSQL内存配置记录
PostgreSQL内存配置,参考了其他人的总结,再加上自己的一些体会,做个记录. postgresql的内存分配主要由shared_buffers.temp_buffers.work_mem.mai ...
- 华为云数据库GaussDB(for Cassandra)揭秘第二期:内存异常增长的排查经历
摘要:华为云数据库GaussDB(for Cassandra) 是一款基于计算存储分离架构,兼容Cassandra生态的云原生NoSQL数据库:它依靠共享存储池实现了强一致,保证数据的安全可靠. 本文 ...
- 当master down掉后,pt-heartbeat不断重试会导致内存缓慢增长
最近同事反映,在使用pt-heartbeat监控主从复制延迟的过程中,如果master down掉了,则pt-heartbeat则会连接失败,但会不断重试. 重试本无可厚非,毕竟从使用者的角度来说,希 ...
- PostgreSQL内存结构图示
磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面:PostgreSQL内部结构与源代码研究索引页 回到顶级页面:PostgreSQL索引页 作者:高健@博客园 luckyjackgao@ ...
- postgresql 内存分配
postgresql的内存分配主要由shared_buffers.temp_buffers.work_mem.maintenance_work_mem参数控制. shared_buffers又可以叫做 ...
- PostgreSQL内部结构与源代码研究索引页
磨砺技术珠矶,践行数据之道,追求卓越价值 luckyjackgao@gmail.com 返回顶级页:PostgreSQL索引页 本页记录所有本人所写的PostgreSQL的内部结构和源代码研究相关文摘 ...
随机推荐
- commonjs详解
marked here a well written artical http://javascript.ruanyifeng.com/nodejs/module.html
- webservice双向验证
ServicePointManager.Expect100Continue = true; ServicePointManager.SecurityProtocol = SecurityProtoco ...
- Replace-iOS
Replace-iOS https://github.com/MartinRGB/Replace-iOS 看了下demo,运行起来超卡...... Simply Implement Zee Young ...
- Office 365实现单点登录系列(2)—Azure AD Connect安装与配置
前言 第一篇文章我已经为大家分享了在在Azure上搭建域控服务器的方法,如果大家本地已经有了域环境,可以直接从这一篇文章开始阅读.Azure AD Connect的前身是DirSync,是专门用于目录 ...
- svn检出项目,Project *** is already imported into workspace
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.如果从svn检出的项目 Import ---- Existing Maven Pro ...
- 16:42 python历史
python的作者是Guido van Rossum,大牛,2.7版本好像到2020年就不能用了,估计很多公司对此有很多的需求吧.
- SDN2017 第一次作业
作业链接 阅读LearningNetworkProgramming.pdf,思考后回答以下问题: 你会选择作 网络编程 方向的程序员吗?为什么? 请搜寻并列出至少3个有影响力的中英文SDN的门户网站. ...
- Java并发:Executor与连接池
概述 首先来说一说java连接池中常用到的几个类:Executor,ExecutorService,ScheduledExecutorService Executor 执行已经提交的任务对象.此接口提 ...
- AbstractApplicationContext 笔记
一.这个类的属性 public abstract class AbstractApplicationContext extends DefaultResourceLoader implements C ...
- Curator 基本API
package bjsxt.curator.base; import java.util.List; import java.util.concurrent.ExecutorService; impo ...