繁体   English   中英

只使用一个Linux Java Process / One Thread,每分钟可以完成多少次插入?

[英]How many inserts can e done per minute using only one Linux Java Process/One Thread?

我必须在Postgresql表中插入6到1000万行。 没有办法摆脱这些插入。

我可以使用在多台机器上运行的多个进程进行扩展。

我想知道鉴于英特尔i7和16GB内存Linux机器,只使用一个Java进程在1分钟内插入的最大行数是多少? 假设TCP / IP调整等

通过这个答案和我的实验,我可以确定每台机器的进程数和机器数。

我很难击中超过2000 - 每分钟2500行。

我正在使用Hibernate 5.2.5与无状态会话和一个线程。

当我运行10个这样的过程时,我能够进行20,000 - 25000次插入/分钟,这是吞吐量的线性增加。

我想知道我的单个过程中是否有任何错误,数字是否太低以及如何增加每个进程的吞吐量,比如说,至少10000 /分钟。

thsnk,库马尔

答案几乎可以肯定是在单个事务中运行所有INSERT (每个线程)。

除非您这样做,否则每个INSERT在其自己的事务中运行,并强制在每次插入结束时为事务日志刷新磁盘,这将使处理进行爬网。

如果这是一次性过程,并且你可能会面临丢失数据的风险(例如,你在开始之前做了一个很好的备份),你可以在PostgreSQL中设置fsync=off (但不要忘记重置当你完成它时它的原始值!)。

我使用了最低端的Intel CPU HP笔记本电脑。 一个过程,一个线程:我能够接近每分钟50,000次插入(60秒)而无需调整等。

原始数字是在其他一些设置中获得的。 我怀疑 ,因此我想从Stack Overflow获得答案。 我得到了答案,因此无需进一步的答案。

谢谢你的答案。 还必须遵守这些规则。 此外,在开发系统时,必须能够执行分布式和并行程序。

谢谢,库马尔

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM