Java 多进程写入同一个文件夹性能问题

问题描述

我们有 4 个 Java 实例,每个实例都有 20 个进程写入 Linux 中的相同和不同文件夹,并且在同一文件夹上存在性能问题。下面是我们的配置

Java Instance 1 -  20 process writing to  FOLDER 1 having writing performance 200000 per hour 
Java Instance 2 -  20 process writing to  FOLDER 1 having writing performance 200000 per hour
Java Instance 3 -  20 process writing to  FOLDER 2 having writing performance 400000 per hour
Java Instance 4 -  20 process writing to  FOLDER 4 having writing performance 400000 per hour

3rd and 4th instance have double the performance of Instance 1 and Instance 2 

OS - REDHAT LINUX
cpu - 150+
Memory - 200+ 

请告知在 Linux 文件系统上写入相同的文件夹会导致性能下降,因为 linux 将文件夹视为文件

以下是我们的 Java IO 代码供参考。

  File outFile = new File(outputFilePathTmp);
  BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(outFile));
  marshaller.marshal(baseDocument.getBusinessDocument(),bufferedWriter);
  String outputFilePathXml = regroupedXmlPath+File.separator+outputFileName.substring(0,indx)+"- Regrouped.xml";
 outFile.setReadable(true,false);
 outFile.setWritable(true,false);
 outFile.setExecutable(true,false);
 long outFileLength=outFile.length()/1024;
 baseDocument.setFileSize(outFileLength);
 bufferedWriter.close();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)