繁体   English   中英

序列化耗时太长,并且多个进程试图同时写入

[英]Serialising takes too long with multiple process trying to write at same time

在通过多个进程序列化文件时,我们面临性能问题。

问题是:我们正在创建多个进程(在分布式计算环境中)进行计算,然后将每个进程的输出记入文件中。 主进程使用这些文件,将其合并到内存中并进行进一步的计算。

我们限制了服务器数量。 发生的情况是,可以在同一服务器上创建2-3个进程。 发生这种情况时(在同一服务器上创建了2-3个进程),我们遇到一种情况,即那些进程试图同时在磁盘上写入\\序列化计算文件(文件大小约为80-90 MB)。 发生这种情况时,序列化文件大约需要3m。 在正常情况下,该80-90 MB仅需30秒。

我们在性能监视器(和我们的日志时序)中监控了这种情况,并且可以看到由于有2-3个进程试图同时写入,因此它花费的时间比正常时序长约6倍。

任何建议,以改善时间安排(3分钟的情况)。

我们使用.Net框架,代码是用C#编写的。

您可以尝试强制进程将其写入不同的文件,然后仅读取文件夹中的所有文件。 例如,您可以具有以下结构

|-C:\experiments\current
|--- output_{UNIQUE_SUFFIX}.bin 
|--- output_0.bin
|--- output_1.bin
|--- output_nwvpqnfj.bin
|--- output_jhfjqhfew.bin

暂无
暂无

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

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