Client machines
Client machines are part of the design, not an afterthought of installation. The number of machines that mount the file system, and the number of mounts on each machine, set how much data the applications can move. Clients covers the forms that the client takes and what each form is built of. This page covers what to decide about the machines before the cluster is built.
A mount needs FUSE 3
mfsmount attaches the file system through FUSE (Filesystem in Userspace), so a client machine needs an operating system that provides FUSE. Supported operating systems covers which systems provide FUSE. Plan for FUSE 3, in its latest stable version or in the version that the latest stable release of the distribution includes. FUSE 2 is not supported. The client may appear to work on that version, but some operations may not work correctly. Appending to a file is among them. On macOS, macFUSE provides FUSE.
The Windows Client PRO (PRO Edition only) is an application of its own, with requirements of its own. Clients covers what the Windows Client is.
Throughput comes from more mounts and more machines
A single mount has a ceiling on how much data it can move per second. All traffic of the mount crosses one kernel channel on the client machine. That channel sets the ceiling (the per-mount throughput ceiling). Every operation has the cost of crossing the FUSE layer before anything leaves the machine (what the FUSE layer costs). To move more data than one mount can move, split the work. Use more mounts on the machine and more client machines. Each mount has a channel of its own (multiple mounts and parallel access). From a single machine, a network that is faster than the channel of one mount is saturated by mounting several times. Linking libmfsio and leaving the channel out also saturates such a network.
Decide the split at design time. Divide the expected data rate by the number of mounts and machines. Every added mount also registers a session of its own with the Master Server. Mounts therefore multiply data streams, but their metadata operations all reach the same machine. Start from the workload covers how to weigh that operation rate.
Each mount takes RAM of its own
A mount keeps caches in its own process: read-ahead buffers and a write cache. A mount option sets a cap for each cache. None of these caches is shared between mounts, so a machine with four mounts holds four sets of caches. The memory of the applications comes on top of that. The caps, their defaults, and what the caches do are covered in client cache and read-ahead. The options that set the caps are listed under mount options.