簡體   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