我有一个java程序,它从数据库中读取数据,处理数据并将其写入csv文件。写入的数据可能非常大(2个文件约为600 MB,总数通常约为1.5 GB,分为16个文件)。
当我使用eclipse(Windows 7)运行程序时,大约需要1小时。
当我在我们的服务器上部署程序时,需要3.5小时。
在这两种情况下,使用的数据库都是相同的。
这是否意味着我可以排除数据库是问题的根源?
如果是这样,可能导致执行时间增加的原因是什么?
eclipse中的JVM参数:Java 7,-Xms1200m,我有4 GB RAM
solaris中的JVM参数:Java 6,-Xms2048M -Xmx3072M,我有256 GB RAM,通常可以免费使用60 GB。
评论回答:
@Jordi Castilla:好吧,我已经运行了几次top命令,并且可用内存总是至少为60 GB。但我不确定。@Pradeep Sekar,@ daslinklink:我该怎么检查?
@jwenting:没有SSD,只是简单的旧硬盘
@RealSkeptic:你的意思是什么?在与运行程序的服务器相同的服务器上?
@Drazan Bozanovic:还没有,因为安装我公司不标准的插件,软件和工具(以及尚未批准的分析工具)证明是困难和冗长的。
@Andrew Henle:
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
1.6 6.5 47.9 207.6 0.0 0.0 0.8 2.5 0 1 risuatfs01-nfs:/RISUATAP01/ACF