纪事:如何优化内存映射文件以实现低延迟? [英] Chronicle: How to optimize memory-mapped files for low-latency?
本文介绍了纪事:如何优化内存映射文件以实现低延迟?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Chronica将大量数据从一个JVM传输到另一个JVM。问题是,我注意到我的基准测试中有很多抖动。我对内存映射文件的了解有些有限,但我知道操作系统会在内存和磁盘之间来回交换页面。
如何配置这些页面以获得最高性能,以我的情况为例,在使用纪事时减少抖动和尽可能低的延迟?它们需要变大还是变小?它们需要是多个还是几个?这是我目前在Ubuntu盒子上的内容:
$ cat /proc/meminfo | grep Huge
AnonHugePages: 2048 kB
ShmemHugePages: 0 kB
HugePages_Total: 1
HugePages_Free: 1
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 1048576 kB
推荐答案
假设您有linux,您可以在生成器上使用useSparseFiles(true)
启用稀疏文件。
您还可以使用速度更快的驱动器来减少异常值或/dev/shm
。
封闭源代码版本中有一个异步模式,但是,如果没有它,您可以获得远低于80微秒的大多数离群值。
历史记录队列不使用大页面。
这是我在写给Corsair MP600 Pro XT时,将其与卡夫卡进行比较时创建的图表。
http://blog.vanillajava.blog/2022/01/benchmarking-kafka-vs-chronicle-for.html
注意:这是两跳写入和读取大约220字节的对象的延迟(带序列化)
这篇关于纪事:如何优化内存映射文件以实现低延迟?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文