Redis Persistence Performance with Asynchronous I/O Integration
説明
In recent years, in-memory database servers have gained popularity due to advancements in memory and CPU architecture, which enables applications such as real-time analytics. Among those servers, Redis is the most widely adopted solution across various companies. However, data persistence in Redis causes severe performance degradation and resource consumption in the server. This is especially apparent in applications where payload sizes are big. This encouraged us to investigate way s to mitigate the effects of persistence on the whole system. We discovered that traditional Redis uses synchronous I/O on a background thread during persistence thus causing the thread and I/O device to block each other. While persistence operations are ongoing, the severe memory usage also causes the server throughput to slow down. This paper proposes a Redis with asynchronous I/O persistence to soften these effects on the system. Tests with different payload sizes were done to analyze the performance of asynchronous I/O and synchronous I/O under different data loads and conditions. Our proposed method resulted in a reduction of 2 to 11 seconds of time taken for persistence operations, causing a 500MB to 1.5GB reduction in memory usage, 0.3% to 13% reduction in CPU usage, and a 0.5% to 8.4% increase in request per second in 30-second segments when payload size is above 128KB.
In recent years, in-memory database servers have gained popularity due to advancements in memory and CPU architecture, which enables applications such as real-time analytics. Among those servers, Redis is the most widely adopted solution across various companies. However, data persistence in Redis causes severe performance degradation and resource consumption in the server. This is especially apparent in applications where payload sizes are big. This encouraged us to investigate way s to mitigate the effects of persistence on the whole system. We discovered that traditional Redis uses synchronous I/O on a background thread during persistence thus causing the thread and I/O device to block each other. While persistence operations are ongoing, the severe memory usage also causes the server throughput to slow down. This paper proposes a Redis with asynchronous I/O persistence to soften these effects on the system. Tests with different payload sizes were done to analyze the performance of asynchronous I/O and synchronous I/O under different data loads and conditions. Our proposed method resulted in a reduction of 2 to 11 seconds of time taken for persistence operations, causing a 500MB to 1.5GB reduction in memory usage, 0.3% to 13% reduction in CPU usage, and a 0.5% to 8.4% increase in request per second in 30-second segments when payload size is above 128KB.
収録刊行物
-
- Proceedings of Asia Pacific Conference on Robot IoT System Development and Platform
-
Proceedings of Asia Pacific Conference on Robot IoT System Development and Platform 2024 37-44, 2024-12-27
情報処理学会
- Tweet
詳細情報 詳細情報について
-
- CRID
- 1050584168832747648
-
- 本文言語コード
- en
-
- 資料種別
- conference paper
-
- データソース種別
-
- IRDB