利用系统缓存提高PostgreSQL操作效率(4)

postgres=# select * from pgsysconf();
 os_page_size | os_pages_free | os_total_pages
--------------+---------------+----------------
        4096 |        167445 |        476688
(1 row)
 
    2、pgsysconf_pretty:
        这个函数和上面的一样,仅仅是输出更易懂些。

postgres=# select * from pgsysconf_pretty();
 os_page_size | os_pages_free | os_total_pages
--------------+---------------+----------------
 4096 bytes  | 654 MB        | 1862 MB
(1 row)
 

3、pgfadvise_willneed:

这个函数是
    输出文件名(relpath),OS block大小(os_page_size),对象占用系统page数(rel_os_pages),OS剩余的page数(os_pages_free)。

postgres=# select * from pgfadvise_willneed('testmem1');
    relpath      | os_page_size | rel_os_pages | os_pages_free
------------------+--------------+--------------+---------------
 base/13003/16384 |        4096 |        42554 |        167294
(1 row)
 
4、pgfadvise_dontneed:
这个函数对当前对象设置dontneed标记。dontneed标记的意思就是当操作系统需要释放内存时优先释放标记为dontneed的pages。输出的意义和上面一致,就不多做介绍了。

postgres=# select * from pgfadvise_dontneed('testmem1');
    relpath      | os_page_size | rel_os_pages | os_pages_free
------------------+--------------+--------------+---------------
 base/13003/16384 |        4096 |        42554 |        332798
(1 row)
 
    5、pgfadvise_NORMAL、pgfadvise_SEQUENTIAL、pgfadvise_RANDOM:
    和pgfadvise_dontneed大同小异,分别将对象标记为normal、sequential、random,意思按照字面意思理解就可以了。
    其实pgfadvise是一个单独的函数,参数是relname,fork,action,含义分别为对象名、进程名以及行为id,上面的3、4、5函数都是输入不同参数而设置的函数,其中willneed、dontneed、normal、sequential、random的值分别是10、20、30、40、50,且默认fork为main。
    这里的pgfadvise主要调用了Linux下的函数posix_fadvise,标记值也是posix_fadvise所需要的。

6、pgfincore:
 

这个函数是是提供对象在操作系统缓存中的信息的。
    它分为三个函数,参数分别为(relname, fork, getdatabit),(relname, getdatabit),(relname),三个参数意思为对象名,进程名(这个地方默认是main),是否要显示databit(很长,注意显示),第一个函数需要全部输入,第二个函数默认fork为main,第三个函数默认fork为main,getdatabit为false。
    它输出的是文件位置及名称(relpath),文件顺序(segment),OS page或block大小(os_page_size),对象占用系统缓存需要的页面个数(rel_os_pages),对象已经占用缓存页面个数(pages_mem),在缓存中连续的页面组的个数(group_mem),OS剩余的page数(os_pages_free),加载信息的位图(databit)。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ccf3ad895676a5e8e1c2debc10cdfc74.html