我刚开始尝试AWS。 我在RDS上有一个Postgres微型实例,我在c4.large上运行一个爬虫。 当我只有一个蜘蛛(一个线程),我得到大约10个写入IOPS。 但是如果部署了两个蜘蛛(2个线程),我只能得到大约7个写入IOPS。 如果我理解正确,因为我已经分配了20GB,那么最大IOPS总计应该是60IOPS。 我附上了下面的监测。
当只有一个蜘蛛被部署时: 
当第二只蜘蛛被部署在旁边时: 
请注意,从平均10次写入IOPS降低到平均7次写入IOPS。
任何帮助都感激不尽。
你使用的是什么样的I / O后端? 这是一个机械或闪存(SSD)?
在机械后端的情况下,你所观察到的是预期的行为:Postgres是一个同步写入沉重的应用程序,这意味着即使增加正在运行的线程,进行中的写入(队列深度)也会保持低水平。 同时,你不断地迫使磁盘的磁头移动到(通常)非常不同的位置。
换句话说,如果没有较长的队列深度所带来的好处,您将在您的磁盘上发出较重的负载。
这是因为数据库通常部署在具有电池备份的写回caching的服务器中:写回caching吸收多个写入并合并,然后为磁盘操作提供更高的队列深度。