2015-01-20 65 views
1

当数据库服务器(postgres 9.3)花费很长时间返回查询数据时,我需要测试我的应用程序(用c#.net编写)的行为。模拟/模拟postgresql中的重负载数据库服务器

我不想更改应用程序代码或查询或数据库架构。

有没有办法模拟数据库服务器被加载并模拟返回数据的延迟?

+0

一个快速的方法可以是这样的:通过pgadmin或者您最喜欢的客户端启动一个事务,然后更新一个将涉及您的应用程序的表。您启动无法更新相同行的应用程序。您可以在需要时提交或回滚事务。 – 2015-01-20 19:00:20

回答

1

您可以使用带有大量客户端的pgbench程序在服务器上施加高实际负载。这将创建新表,但它们可以转换为不同的模式,甚至可以在数据库集群中创建不同的数据库。 (或者,如果甚至无法将表添加到不同的数据库中,甚至可以在同一台计算机服务器上的不同端口上运行单独的数据库实例,并加载该表。)

如果初始化pgbench模式由于数据量大,因此数据不适合RAM,这会产生较高的IO负载。如果使用较小的比例因子,则会产生较高的CPU负载。