March 3, 20242 yr The nfs share is set to cache prefer. However, when starting a stress test it is only writing to the hdd and not the sdd pool. the following are my exports: cat /etc/exports # See exports(5) for a description. # This file contains a list of all directories exported to other computers. # It is used by rpc.nfsd and rpc.mountd. "/mnt/user/tftp" -fsid=100,async,no_subtree_check *(rw,sec=sys,insecure,anongid=100,anonuid=99,all_squash) "/mnt/user/tftp/arch" *(rw,no_root_squash,no_subtree_check) the following is my nfsmount.conf cat /etc/nfsmount.conf # # /etc/nfsmount.conf - see nfsmount.conf(5) for details # # This is an NFS mount configuration file. This file can be broken # up into three different sections: Mount, Server and Global # # [ MountPoint "Mount_point" ] # This section defines all the mount options that # should be used on a particular mount point. The '<Mount_Point>' # string need to be an exact match of the path in the mount # command. Example: # [ MountPoint "/export/home" ] # background=True # Would cause all mount to /export/home would be done in # the background # # [ Server "Server_Name" ] # This section defines all the mount options that # should be used on mounts to a particular NFS server. # Example: # [ Server "nfsserver.foo.com" ] # rsize=32k # wsize=32k # All reads and writes to the 'nfsserver.foo.com' server # will be done with 32k (32768 bytes) block sizes. # [ NFSMount_Global_Options ] # This statically named section defines global mount # options that can be applied on all NFS mount. # # Protocol Version [3,4] # This defines the default protocol version which will # be used to start the negotiation with the server. # limetech - start negotiation with v4 #Defaultvers=3 Defaultvers=4 # # Setting this option makes it mandatory the server supports the # given version. The mount will fail if the given version is # not support by the server. # Nfsvers=4 # # Network Protocol [udp,tcp,rdma] (Note: values are case sensitive) # This defines the default network protocol which will # be used to start the negotiation with the server. # Defaultproto=tcp # # Setting this option makes it mandatory the server supports the # given network protocol. The mount will fail if the given network # protocol is not supported by the server. # Proto=tcp # # The number of times a request will be retired before # generating a timeout # Retrans=2 # # The number of minutes that will retry mount # Retry=2 # # The minimum time (in seconds) file attributes are cached # acregmin=30 # # The Maximum time (in seconds) file attributes are cached # acregmin=60 # # The minimum time (in seconds) directory attributes are cached # acregmin=30 # # The Maximum time (in seconds) directory attributes are cached # acregmin=60 # # Enable Access Control Lists # Acl=False # # Enable Attribute Caching # Ac=True # # Do mounts in background (i.e. asynchronously) # Background=False # # Close-To-Open cache coherence # Cto=True # # Do mounts in foreground (i.e. synchronously) # Foreground=True # # How to handle times out from servers (Hard is STRONGLY suggested) # Hard=True # Soft=False # # Enable File Locking # Lock=True # # Enable READDIRPLUS on NFS version 3 mounts # Rdirplus=True # # Maximum Read Size (in Bytes) # Rsize=8k # # Maximum Write Size (in Bytes) # Wsize=8k # # Maximum Server Block Size (in Bytes) # Bsize=8k # # Ignore unknown mount options # Sloppy=False # # Share Data and Attribute Caches # Sharecache=True # # The amount of time, in tenths of a seconds, the client # will wait for a response from the server before retransmitting # the request. # Timeo=600 # # Sets all attributes times to the same time (in seconds) # actimeo=30 # # Server Mountd port mountport # mountport=4001 # # Server Mountd Protocol # mountproto=tcp # # Server Mountd Version # mountvers=3 # # Server Mountd Host # mounthost=hostname # # Server Port # Port=2049 # # RPCGSS security flavors # [none, sys, krb5, krb5i, krb5p ] # Sec=sys # # Allow Signals to interrupt file operations # Intr=True # # Specifies how the kernel manages its cache of directory # Lookupcache=all|none|pos|positive # # Turn of the caching of that access time # noatime=True # limetech - default is actually False, we want True noatime=True alfheim-diagnostics-20240303-1320.zip
March 3, 20242 yr Solution If the file being written already exists and is on the array then a re-write of the file is going to go onto the array.
March 3, 20242 yr Author i tested it with a new file using the following command. fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --bs=4k --iodepth=64 --readwrite=randrw --rwmixread=75 --size=4G --filename=/path/to/git-data/testfile and it begins writing to the array with about 200MB/s then it gets really slow. It never writes to the cache. Do you know how I could reconfigure or debug this further?
March 3, 20242 yr Author Seems like the second nfs share i configured in/using the exports doesn't use the cache how would i reconfigure this in unraid? Edited March 3, 20242 yr by xylon
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.