Linux kernel 性能记录——aio性能

Linux kernel 性能记录——aio性能,linux-kernel,perf,aio,Linux Kernel,Perf,Aio,我遇到了perf record'--aio'选项,在查看源代码时,我发现首先使用memcpy()将内核缓冲区中的数据复制到临时缓冲区中,然后将aio请求排队,以便从临时缓冲区传输到输出文件/套接字(取决于参数) 我的理解正确吗?下面链接的linux管道工对话幻灯片中提到的2倍性能改进来自于memcpy()比write()调用快2倍(在幻灯片第4页的图表中,以增加memcpy()为代价减少暂停时间) write()不是也被缓冲了吗?有没有办法衡量这种改进?我尝试在我的高核数AMD机器上运行下面链接

我遇到了perf record'--aio'选项,在查看源代码时,我发现首先使用memcpy()将内核缓冲区中的数据复制到临时缓冲区中,然后将aio请求排队,以便从临时缓冲区传输到输出文件/套接字(取决于参数)

我的理解正确吗?下面链接的linux管道工对话幻灯片中提到的2倍性能改进来自于memcpy()比write()调用快2倍(在幻灯片第4页的图表中,以增加memcpy()为代价减少暂停时间)

write()不是也被缓冲了吗?有没有办法衡量这种改进?我尝试在我的高核数AMD机器上运行下面链接的补丁中提到的命令,但没有注意到2倍的改进。有时,我会在启用了--aio的情况下得到更多丢失的记录,我知道作者使用intel机器进行了测试,但这会对本例产生很大影响吗?是否丢失记录的数量不能准确地表示丢失的时间

为什么aio限制在4个,更多的aio线程会影响性能吗

在这种情况下是否可以使用io


补丁链接:

当内核的速率和容量很高时,它可能会丢失分析数据
不要对第一句中出现两个错误的幻灯片期望太高。副本是将数据放入一个缓冲区,该缓冲区与aio要求对齐。由于系统调用开销较小,io存储会更好。