个人微薄: weibo.com/manuscola
发布时间:2013-06-29 09:44:02
PostgreSQL部署上之后,经过一段时间的运行,我们比较关心那些SQL运行时间比较长,或者说那些SQL执行的特别慢,拖累的性能,只有找到这些SQL,才能有针对性地对这些SQL进行优化,提升PostgreSQL的性能。 PostgreSQL提供了pg_stat_statements来存储SQL的运行次数,总运行时间,shared_buffe.........【阅读全文】
发布时间:2013-06-28 18:46:22
某些情况下,某条SQL执行非常耗时并且DISK IO高,我们想看下进程在操作那些表。strace可以看到文件在操作的文件描述符,根据文件描述符结合lsof可以看到进程操作哪些磁盘文件,这其实也不是我们想要的,给你/usr/pgdata/base/16384/16392这样的磁盘文件你也不清楚对应那个表,当然了,oid2name可做到从文件名.........【阅读全文】
发布时间:2013-06-16 22:18:47
看代码,之困难在于如何剥离繁芜的细节,直接到代码的核心,即代码到底要解决什么问题,代码用的什么算法或者思想来解决的,弄懂了这个,基本摧枯拉朽了。就像上一篇源码分析Page。Page要解决的问题是多条记录在8KB的空间内存储问题,这自然包含当前8KB的空间内有多大的剩余空间;如何插入一笔记录到8KB的空间.........【阅读全文】
发布时间:2013-06-15 16:44:24
前面几篇博客分析了shared buffer,从shared buffer到磁盘文件的映射,到shared buffer的分配和替换,再到如何测量shared buffer的性能情况,配置是否合理,基本把shared buffer大概介绍了下,这篇博客主要分析page。 page的源码落在/src/backend/storage/page,page对于PostgreSQL是个什么.........【阅读全文】
发布时间:2013-06-12 15:22:17
在前面提到过shared_buffers是可以配置的,也给出了配置方法,但是配置多大才合理。网上资料众说纷纭,有的说总RAM的10%~15%,有的说是30~45%,有的很具体,说8G内存情况下512M是合理的。本文通过shared buffer相关的统计量和状态信息,希望可以加深对shared buffer的理解,同时给出大家一点启发,如果设定s.........【阅读全文】