获得更多数据库性能 – postgresql

前端之家收集整理的这篇文章主要介绍了获得更多数据库性能 – postgresql前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在专用服务器上托管了一个 django“web应用程序”(来自地狱).经过一些基准测试后,我发现“应用程序”在数据库操作方面非常糟糕(此时重构不是一个选项).它会产生大量的读写活动.现在我们正在获得另一个(第二个)专用服务器,以提高性能和一些紧急冗余.这两款机器都运行24核(Intel(R)Xeon(R)cpu E5645 @ 2.40GHz)和48GB RAM(还有Raid 10,6x150gb 15k hardrives).

我想知道如何改进设置.

>使用KVM进行虚拟化,为Nginx uwsgi,memcached和postgresql单独创建vmachine.最好制作超过1个postgresql – 并使用pg-pool来获取更多信息.
>保持虚拟化,在每台服务器上安装所有内容,然后使用此镜像设置在数据中心级别获得适当的负载均衡器.
>获得更多的机器 – 更少的内核,更少的内存(一般比其他两个“主要”更便宜)并在那里设置一些数据库集群?
> IF数据库集群路由 – 那么什么能够为写入和读取提供最佳性能

(在此期间我们正在以适当的方式重写应用程序,但是获得当前的 – 糟糕的 – 运行速度更快一点是至关重要的,我们需要它至少在接下来的3个月内保持增加的流量……)

你能否就加强设置提出一些建议?强调为可笑的低效app-from-hell准备数据库机器结构.

解决方法

一些基本的操作系统级DB性能提示

>拥有比您知道更多的RAM.
如果您可以将整个查询放在RAM中,或者至少将数据保存在数据库或操作系统缓存中,那么您的性能将得到显着提高.
>花钱购买快速磁盘和优秀的RAID控制器.
RAID 10,如果你能得到它,并在RAID控制器上使用备用电池,这样你就可以充分利用写缓存.
>调整Postgres服务器的设置
(在Khaled的回答中有一个关于Postgres维基页面链接)
>利用只读从属
如果您正在运行Postgres 9.x,则可以使用只读从属服务器.将一些读取密集型工作(如报告)卸载到从属服务器上,这样当您尝试进行更新时,主数据库并不忙.
>永远不要永远不要虚拟化生产数据库服务器
几乎从来没有 – 虚拟化数据库服务器是一个性能杀手.

对于DB特定提示,您可能需要在dba.SE上检查 – 通过正确的索引和查询设计可以实现巨大的性能提升.

猜你在找的MsSQL相关文章