摘要:你经常会在基于Linux的系统上面临的问题之一是管理内存预算。如果程序使用的内存多于可用内存,则可能会发生交换,这常常会对性能造成严重影响,或者激活了内存溢出(OOM),从而完全杀死了进程。 在调整内存使用之前,通过配置优化或者负载管理,有助于了解给定程序实际使用多少内存。 如果你的系统本质上运行单 阅读全文
PostgreSQL的大对象以及空间使用 (3)
2020-10-12 08:58 by abce, 615 阅读, 1 推荐, 收藏,
摘要:如果没有关于vacuumlo的最后一篇文章,本系列将是不完整的。 在上一篇文章中,我们已经看到大对象被分成每个元组,每个元组包含2048个字节,每个chunk的行为与常规元组非常相似。 注意:在PostgreSQL中,借助TOAST技术,可以将大量数据与表一起存储。 大对象没有插入应用表中,但是以不 阅读全文
PostgreSQL的大对象以及空间使用 (2)
2020-10-11 10:22 by abce, 519 阅读, 1 推荐, 收藏,
摘要:在上一篇文章中,展示了插入大对象后,pg_largeobject表中有多少大对象使用空间。 让我们再深入研究一下: 该表有2个大对象(总共1024个记录): lob_test=# select pg_relation_size('pg_largeobject'); pg_relation_size 阅读全文
PostgreSQL的大对象以及空间使用 (1)
2020-10-10 09:34 by abce, 1645 阅读, 1 推荐, 收藏,
摘要:PostgreSQL对大列使用了一种很好的,非标准的TOAST机制,可以将其与Oracle中的扩展数据类型进行比较(顺便说一下,TOAST行可能更大)。 不过,传统的大对象,仍然被许多客户使用。 如果你不熟悉PostgreSQL中的大对象,请阅读此处(https://www.postgresql.o 阅读全文
PostgreSQL的WAL(4)--WAL创建和调优
2020-09-21 21:43 by abce, 4255 阅读, 0 推荐, 收藏,
摘要:我们熟悉了buffer cache的结构,在此情况下得出的结论是,如果所有RAM内容由于故障而丢失,则需要恢复预写日志(WAL)。由于不时地执行检查点,因此所需的WAL文件的大小和恢复时间受到限制。 在前面的文章中,我们已经回顾了许多与WAL相关的重要设置。在本文(本系列的最后一篇)中,我们将讨论尚 阅读全文
PostgreSQL的WAL(3)--Checkpoint
2020-09-19 11:26 by abce, 1535 阅读, 0 推荐, 收藏,
摘要:我们已经熟悉了buffer cache的结构(共享内存的主要对象之一),并得出结论,要在所有RAM内容丢失后发生故障后恢复,必须保留预写日志(WAL)。 我们上次中断的地方尚未解决的问题是,我们不知道在恢复期间从哪里开始播放WAL记录。从头开始,这是不可行的:不可能从服务器启动时保留所有WAL记录- 阅读全文
PostgreSQL的WAL(2)--Write-Ahead Log
2020-09-19 11:21 by abce, 666 阅读, 0 推荐, 收藏,
摘要:丢失RAM中的数据的风险是我们需要在故障后恢复数据的技术的主要原因。现在我们来讨论这些技术。 日志 为了避免RAM中数据丢失,必须将所有必需的东西妥善保存到磁盘(或其他非易失性介质)中。为此,做了以下的操作。在更改数据时,还维护了这些更改的日志。当我们更改buffer cache中页面上的某些内容时 阅读全文
PostgreSQL的WAL(1)--Buffer Cache
2020-09-17 12:05 by abce, 1035 阅读, 0 推荐, 收藏,
摘要:为什么需要提前写日志 DBMS处理的数据部分存储在RAM中,并异步写入磁盘(或其他非易失性存储)中。即写延迟了一段时间。这种情况发生的频率越低,输入/输出越少,系统运行越快。 但是,如果发生故障(例如断电或DBMS或操作系统的代码错误),会发生什么? RAM的所有内容都会丢失,只有写入磁盘的数据才能 阅读全文
pg_waldump工具
2020-09-15 15:23 by abce, 1158 阅读, 0 推荐, 收藏,
摘要:pg_waldump显示WAL,将WAL以人可以读的格式输出。主要用于调试或教育目的。这个实用程序只能由安装的用户运行,因为它需要对数据目录进行只读访问。 语法 pg_waldump [option...] [startseg [endseg] ] 参数 $ pg_waldump --help pg 阅读全文
PostgreSQL的MVCC(8)--Freezing
2020-09-13 20:27 by abce, 723 阅读, 1 推荐, 收藏,
摘要:事务ID包装 PostgreSQL使用32位事务ID。 这是一个相当大的数字(大约40亿),但是随着服务器的大量工作,这个数字并不是不可能被耗尽。例如:每秒处理1000次事务,这种情况最少要在一个半月的连续工作中发生。 但是我们已经提到,多版本并发控制依赖于顺序编号,这意味着在两个事务中,数值较小的 阅读全文
浙公网安备 33010602011771号