|
|
Subscribe / Log in / New account

ksmbd: a new in-kernel SMB server (SAMBA+ blog)

Over at the SAMBA+ blog, the performance of the new ksmbd kernel SMB server and Samba in user space are compared:
ksmbd claims performance improvements on a wide range of benchmarks: the graphs on this page show a doubling of performance on some tests. There was also the notion that an in-kernel server is likely an easier place to support SMB Direct, which uses RDMA to transfer data between systems.

Clearly, those number are impressive, but at the same time recent improvements in Samba's IO performance put this into perspective: by leveraging the new "io_uring" Linux API Samba is able to provide roughly 10x the throughput compared to ksmbd.

Time will tell whether it's better to reside in kernel-space like ksmbd or in user-space like Samba in order to squeeze the last bit of performance out of the available hardware.

There are two graphs that show some impressive results for Samba.


to post comments

ksmbd: a new in-kernel SMB server (SAMBA+ blog)

Posted Nov 5, 2021 1:18 UTC (Fri) by smfrench (subscriber, #124116) [Link] (3 responses)

Great news on improvements in performance. Looking forward to continued testing for the Linux client with the improved Samba and ksmbd. My assumption is that we will see performance benefits in running some workloads to Samba, and other workloads will benefit from the much shorter path lengths in the kernel server (and the POSIX extensions are farther along in the kernel server, so may do better for some Linux workloads). Will be very interesting to see how this plays out - but it should help the ecosystem a lot to have multiple server choices. Great work!

ksmbd: a new in-kernel SMB server (SAMBA+ blog)

Posted Nov 8, 2021 17:01 UTC (Mon) by ncm (guest, #165) [Link] (2 responses)

Guessing that throughput-constrained jobs will do markedly better with io_uring-accelerated SAMBA, and latency-constrained jobs will do better with the kernel server. But, also, that latency-constrained jobs could often be converted to throughput-constrained, and benefit more from that and io_uring SAMBA than if they depended on the in-kernel SMB support.

If so, the fact doesn't change that some can't and many others won't be converted.

ksmbd: a new in-kernel SMB server (SAMBA+ blog)

Posted Nov 9, 2021 1:47 UTC (Tue) by ttuttle (subscriber, #51118) [Link] (1 responses)

Ooh, I wonder if a hybrid approach is possible -- respond to latency-sensitive interactions in the kernel, but proxy throughput-sensitive interactions to userspace, which can then use io_uring to handle them efficiently.

I also wonder if the kernel version can be rewritten to use more of the strategies/APIs that make the userspace io_uring version so fast.

ksmbd: a new in-kernel SMB server (SAMBA+ blog)

Posted Nov 17, 2021 15:47 UTC (Wed) by smfrench (subscriber, #124116) [Link]

Very likely additional parallelization like you suggest will be able to be done in ksmbd. This is an exciting time for both Samba and ksmbd. The protocol supports additional features like multichannel (and related queries for interface information, and async notifications on server and network configuration changes) so the number of network interfaces the client could use in parallel and the number of "credits" given the client (for flow control) could be changed on the fly based on the number of threads and/or server CPU or local disk throughput.

ksmbd: a new in-kernel SMB server (SAMBA+ blog)

Posted Nov 12, 2021 21:56 UTC (Fri) by jrwren (subscriber, #97799) [Link]

The graphs on that page are rather strange. Was it run on old hardware, old network, entirely in VM? Why are the numbers so slow?


Copyright © 2021, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds