From e2093fb1500f55f58236d37a996609a2a1e1af8e Mon Sep 17 00:00:00 2001 From: Santosh Kumar Pradhan Date: Wed, 18 Sep 2013 14:43:40 +0530 Subject: gNFS: NFS daemon is limiting IOs to 64KB Problem: Gluster NFS server is hard-coding the max rsize/wsize to 64KB which is very less for NFS running over 10GE NIC. The existing options nfs.read-size, nfs.write-size are not working as expected. FIX: Make the options nfs.read-size (for rsize) and nfs.write-size (for wsize) work to tune the NFS I/O size. Value range would be 4KB(Min)-64KB(Default)-1MB(max). NB: Credit to "Richard Wareing" for catching it. Change-Id: I2754ecb0975692304308be8bcf496c713355f1c8 BUG: 1009223 Signed-off-by: Santosh Kumar Pradhan Reviewed-on: http://review.gluster.org/5964 Tested-by: Gluster Build System Reviewed-by: Kaleb KEITHLEY Reviewed-by: Anand Avati --- xlators/nfs/server/src/nfs.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'xlators/nfs/server/src/nfs.c') diff --git a/xlators/nfs/server/src/nfs.c b/xlators/nfs/server/src/nfs.c index 831e82a8c..dfb92068e 100644 --- a/xlators/nfs/server/src/nfs.c +++ b/xlators/nfs/server/src/nfs.c @@ -1121,23 +1121,31 @@ struct xlator_dumpops dumpops = { struct volume_options options[] = { { .key = {"nfs3.read-size"}, .type = GF_OPTION_TYPE_SIZET, + .min = GF_NFS3_RTMIN, + .max = GF_NFS3_RTMAX, .default_value = TOSTRING(GF_NFS3_RTPREF), .description = "Size in which the client should issue read requests" " to the Gluster NFSv3 server. Must be a multiple of" - " 4KB." + " 4KB. Max supported value is 1MB(1048576)." }, { .key = {"nfs3.write-size"}, .type = GF_OPTION_TYPE_SIZET, + .min = GF_NFS3_WTMIN, + .max = GF_NFS3_WTMAX, .default_value = TOSTRING(GF_NFS3_WTPREF), .description = "Size in which the client should issue write requests" " to the Gluster NFSv3 server. Must be a multiple of" - " 4KB." + " 4KB. Max supported value is 1MB(1048576)." }, { .key = {"nfs3.readdir-size"}, .type = GF_OPTION_TYPE_SIZET, + .min = GF_NFS3_DTMIN, + .max = GF_NFS3_DTMAX, .default_value = TOSTRING(GF_NFS3_DTPREF), - .description = "Size in which the client should issue directory " - " reading requests." + .description = "Size in which the client should issue directory" + " reading requests to Gluster NFSv3 server. Must" + " be a multiple of 4KB. Max supported value is" + " 1MB(1048576)." }, { .key = {"nfs3.*.volume-access"}, .type = GF_OPTION_TYPE_STR, -- cgit