misskey
misskey copied to clipboard
Chart Updateが一斉に走って重たくなる
💡 Summary
Bugではなく仕様だと思われますが、Chartの更新の処理の負荷がとても高くなってしまっています。 あとRaspberry piで動かしているのもあると思いますが....
🥰 Expected Behavior
Chartの更新が走っても重たくならない
🤬 Actual Behavior
Chartの更新が走ると投稿すらできないほど重たくなる
📝 Steps to Reproduce
- Chartが更新されるまで待つ。
- Chartが更新され始めるとものすごく重たくなる
📌 Environment
Misskey version: v13.9.1
処理を集中させないならこの2つですかね
- QueueProcessorService.ts で 0:00 になっているジョブの時間をずらす。(0時0分、10分、20分、30分のように)
this.queueService.systemQueue.add('resyncCharts', {
}, {
repeat: { cron: '0 0 * * *' },
removeOnComplete: true,
});
this.queueService.systemQueue.add('cleanCharts', {
}, {
repeat: { cron: '0 0 * * *' },
removeOnComplete: true,
});
this.queueService.systemQueue.add('aggregateRetention', {
}, {
repeat: { cron: '0 0 * * *' },
removeOnComplete: true,
});
this.queueService.systemQueue.add('clean', {
}, {
repeat: { cron: '0 0 * * *' },
removeOnComplete: true,
});
- ジョブの中で
Promise.all()でまとめてやっているのを1個ずつやる。
CleanChartsProcessorService.ts 例
await Promise.all([
this.federationChart.clean(),
this.notesChart.clean(),
this.usersChart.clean(),
this.activeUsersChart.clean(),
this.instanceChart.clean(),
this.perUserNotesChart.clean(),
this.perUserPvChart.clean(),
this.driveChart.clean(),
this.perUserReactionsChart.clean(),
this.perUserFollowingChart.clean(),
this.perUserDriveChart.clean(),
this.apRequestChart.clean(),
]);
リモートのチャート更新を無効にできるオプションが追加され、そのオプションで改善できるのでcloseします