在 Redis 文档中,它明确指出vm.overcommit_memory应设置1为确保后台保存更新失败:http://redis.io/topics/faq
然而
在 postgresql 文档中,它说,vm.overcommit_memory应该设置2为避免 post master 进程不会被 oom 杀手杀死:http://www.postgresql.org/docs/9.3/static/kernel-resources.html
现在看来,这是自相矛盾的。我应该怎么办?
我的 redis 数据库的限制为 20GB。服务器拥有 252GB 物理 RAM。Postgresql 很少使用超过 100GB 的物理内存。
PS:我使用的是 ubuntu 14、Redis 3.0 和 Postgresql 9.3
我正在准备一台 VM 机器(在 Proxmox 上运行)来在 Ubuntu 16.04 LTS 上运行 postgresql 9.6。这个 postgres 将用于处理一家小公司的 Jira/FisheEye/Confluence 数据库。通常我们同时有几个用户,所以我们不需要调整它以获得极端的性能/可扩展性。
嗯,情况是,我们在服务器上使用 BTRFS 来帮助我们处理在必要时向虚拟机添加额外空间的问题,此外我们还启用了 lzo 压缩。此外,我们使用 btrok 来处理 BTRFS 子卷到另一台机器的备份。
我怀疑使用 BTRFS 处理 postgresql 数据库文件是否是一个好主意,因为我们在需要扩展虚拟硬盘空间的情况下会非常有帮助,但我读到了有关 postgresql 性能比 BTRFS 差的信息(在特殊情况下) datacow 未被禁用。
有人有这种情况的经验吗?
我在 Debian 9 上通过 apt-get 安装了 PostgresQL 11。安装后,我删除了默认数据库集群,并删除了自动启动该集群的所有服务。我现在已经运行 initdb 在自定义位置初始化一个新集群,并编写并启用了 systemd .service 文件以自动运行该文件。
我遇到了一个问题,机器启动时服务成功启动,但随后数据库立即关闭,服务立即停止。当我使用 systemctl 手动启动服务时,也会发生同样的情况。
.服务文件:
[Unit]
Description=PostgreSQL database server
Documentation=man:postgres(1)
[Service]
Environment=PGDATA=/home/(user)/.db
Environment=PGLOG=/home/(user)/postgres.log
Environment=PGSTARTTIMEOUT=270
Type=notify
User=(user)
Group=(group)
ExecStart=/usr/lib/postgresql/11/bin/pg_ctl start -D ${PGDATA} -l ${PGLOG} -t ${PGSTARTTIMEOUT}
ExecStop=/usr/lib/postgresql/11/bin/pg_ctl stop -D ${PGDATA} -m fast
ExecReload=/usr/lib/postgresql/11/bin/pg_ctl reload -D ${PGDATA}
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=300
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
手动启动集群的命令:
su (user) -c '/usr/lib/postgresql/11/bin/pg_ctl start -D /home/(user)/.db -l /home/(user)/postgres.log -t 270'
Run Code Online (Sandbox Code Playgroud)
通过 systemctl 启动时的 PostgreSQL 日志:
2019-01-13 11:36:16.506 EST [1469] 日志:监听 IPv4 地址“127.0.0.1”,端口 5432
2019-01-13 11:36:16.508 EST …
我正在对一个 AWS RDS Postgres 实例进行故障排除,该实例在过去几天内已被 AWS 重启了多次,很可能是由于资源限制。这是一个测试数据库,通常不会做太多事情,但我们最近给它增加了一些更高的负载。我发现数据库的 EBS 卷 (200GB gp3) 耗尽了其吞吐量积分,并且数据库重新启动的时间与 EBSByteBalance% 指标达到零的时间非常吻合。然后,当数据库重新启动时,该卷显然会获得一组新的突发积分,如下面的屏幕截图所示:
由于我们减轻了数据库的负载,积分现在下降得稍微慢一些,但它们仍在下降。当我查看当前的读写吞吐量指标时,它们的总和似乎仅为 5 到 7 MiB/s,偶尔会出现峰值:
根据在Amazon RDS 数据库实例存储中找到的信息,低于 400GB 的 gp3 卷的基准吞吐量应为 125MiB/s。那么任何人都可以帮我解释为什么 EBSByteBalance% 指标在这种情况下不断下降吗?谢谢!
postgresql performance amazon-ebs amazon-web-services amazon-rds
我有一个数据库(它是 Postgres,如果这很重要),我想取出其中的两个表,导出它们,然后将它们导入另一个数据库。我怎么做?
编辑添加谷歌诱饵:转储
如何制作postgresql数据库的副本?
一些(我认为)步骤是:
postgresql守护进程任何想法我应该更改什么postgresql.conf才能通知 postgresql 服务器有关新数据库的信息?
我正在购买带有 8 个 SAS 磁盘的服务器来执行数据库密集型程序。目前主要的瓶颈是 postgres 中的大型索引扫描。
我目前正在决定是 8x300Gb 10k 磁盘还是 8x140Gb 15k 磁盘,因为拥有 200Gb+ 逻辑空间会更方便。
RAID 控制器的规格表指出:“集成硬件 RAID-0、-1、-1E、可选 RAID-5、-6、-10、-50、-60”
什么是最好的 RAID 配置,以及最合适的磁盘选择是什么?
我是配置 RAID 和 postgres 的新手,并感谢您的建议。
我想提交一个用于标记的课程作业,但我不知道什么文件代表数据库。 问题: 我在哪里可以找到我硬盘上的 postgres sql 数据库?谢谢。
我有一个包含大约 270 万条记录、63 个字段和几个索引的表。我需要能够快速从 mysql 获取这个表到 postgresql(比如在一小时内)。我知道mysql可以快速导出数据,但是postgresql在导入数据时似乎很慢。有任何想法吗?我已经导入了从 mysqldump 生成的 CSV 大约 3 个小时了。
我是 RHEL 6 的新手,但有一个项目需要 postgres 9 数据库,而我只有 RHEL 6 可用。我怎样才能安全地做到这一点?我应该从源代码安装还是某个地方有软件包?
postgresql ×10
database ×2
amazon-ebs ×1
amazon-rds ×1
btrfs ×1
linux ×1
mysql ×1
performance ×1
raid ×1
redhat ×1
redis ×1
sql ×1
sysctl ×1
systemd ×1
ubuntu ×1
ubuntu-16.04 ×1