節點JS - 12.7 溫斯頓 - 1.0.1溫斯頓的NodeJS記錄大量寫入停滯不前
我,試圖產生「假」日誌代表許多「設備」文件掙扎。基本上我將在Kibana中使用這些數據進行測試和可視化。
設置我的溫斯頓高達日誌記錄文件爲這樣:
var winston = require('winston');
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: 'logs/dsm.log'
})
]
});
所以我有設備陣列這僅僅是一個列表12字節的哈希值,如:AB4576D4C6AC
等
我我通過設備陣列循環和組裝我的「假」的日誌條目,像這樣:
for (var i = 0; i < devices.length; i++) {
var timeStmp = startDateTime.clone().add((i * config.dsmIntervalMinutes), "m");
dsm = {
deviceId: devices[i].deviceId,
msg: "some log entry text",
timeStmp: timeStmp
};
logger.info(dsm);
}
正如你所看到的,我最終通過記錄消息info
到Winst在循環中創建每個DSM後開啓。
所以這似乎工作得很好,除非我有大量的設備。我想要達到1米左右的設備。我目前正在努力做10萬。
我所看到的是節點進程不會將日誌寫入日誌文件。它似乎將它們全部存儲在內存中(如使用top
所示),一旦它達到10k左右,它就會慢慢爬行並最終停止前進。日誌文件從不寫入。
所以我想知道是否有辦法做到這一點?我可以以某種方式迫使node/winston停止並偶爾寫入磁盤嗎?像刷新緩存一樣?我在這裏沒有看到溫斯頓的選擇。
任何幫助將不勝感激!
你嘗試 爲(VAR I = 0; I
bluesman