我有一个使用PostgreSQL9.3的Django应用程序,它的负载将增加到每分钟大约300个插入(峰值负载),并且在一个表中每个月大约有600万行。而且,在同一个表上应该有很多查询,没有什么复杂的,只是一个sum分组和索引字段。
这张桌子是这样的:
Column | Type | Modifiers
----------------------+--------------------------+-----------
id | integer | not null default nextval('seq'::regclass)
commercial_entity_id | integer | not null
commercial_branch_id | integer |
when | timestamp with time zone | not null
currency_id | character varying(3) | not null
amount | numeric(10,2) | not null
loyalty_account_id | integer | not null
code | character varying(16) | not null有人能告诉我,我应该为这个负载提供多少硬件,或者什么是处理这个问题的好方法?
现在,它正在Amazon S3 m3上运行,它只有2 vCPU和7.5GB内存。我想这是不够的,但我没有任何真实世界的经验来更好地了解。
在Meta的帮助下,我将我的问题重新表述如下:
您应该如何确定我需要什么样的硬件来处理这个负载?从哪里可以了解到可以对数据库进行的其他更改以提高其性能?
发布于 2015-10-01 21:20:02
基本上有两种方法来回答你的问题:猜测和模拟。
对于前者,您仍然没有提供很多有用的信息,例如:
至于模拟,您可能只需一两天就可以克隆现有数据库,创建测试系统;下载并安装Apache JMeter;编写一个简单的测试计划,生成300个插入/秒加上查询;并运行它以查看系统在预计工作负载下的实际行为。这将允许您(或其他人建议的临时顾问)识别性能瓶颈,并通过向其抛出额外的硬件来确定是否可以解决这些瓶颈。
发布于 2015-10-01 20:53:51
https://dba.stackexchange.com/questions/116706
复制相似问题