You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
1.4 KiB

  1. # fuse_msg_size
  2. * `fuse_msg_size=UINT`
  3. * Defaults to `256`
  4. FUSE applications communicate with the kernel over a special character
  5. device: `/dev/fuse`. A large portion of the overhead associated with
  6. FUSE is the cost of going back and forth between user space and kernel
  7. space over that device. Generally speaking, the fewer trips needed the
  8. better the performance will be. Reducing the number of trips can be
  9. done a number of ways. Kernel level caching and increasing message
  10. sizes being two significant ones. When it comes to reads and writes if
  11. the message size is doubled the number of trips are approximately
  12. halved.
  13. In Linux v4.20 a new feature was added allowing the negotiation of the
  14. max message size. Since the size is in multiples of
  15. [pages](https://en.wikipedia.org/wiki/Page_(computer_memory)) the
  16. feature is called `max_pages`. There is a maximum `max_pages` value of
  17. 256 (1MiB) and minimum of 1 (4KiB). The default used by Linux >=4.20,
  18. and hardcoded value used before 4.20, is 32 (128KiB). In mergerfs it's
  19. referred to as fuse_msg_size to make it clear what it impacts and
  20. provide some abstraction.
  21. Since there should be no downsides to increasing `fuse_msg_size`,
  22. outside a minor increase in RAM usage due to larger message buffers,
  23. mergerfs defaults the value to 256. On kernels before v4.20 the value
  24. has no effect. The reason the value is configurable is to enable
  25. experimentation and benchmarking.