I have a dual controller netapp, Fas 3250 with version 8.1.4P1-Mode. I have a trunk of 2 RJ45 ports of 1Gb (total 2GB) and also created on the switch. I have a CIFS service up and I have enabled it with default values.
The cabin has an aggregate of 3 disks for the OS, and two aggregates of 66 disks each. The disks are of the 1.2Tb SAS type. The problem that arises is that in a CIFS type folder, the readings are giving me a speed of 85-95 MB per second which is a speed that is fine, because from the server where I am doing the test it has a 1Gb cable. The problem arises with writing, it is around 20-25Mb per second. It's very slow, and I don't know why it is ...
Can someone help me find out why with reading the transfer is good and with reading it is very slow?
Tests I have done:
The cabin has a 2TB flash cache PCI card, in the graphical interface it shows that it is operating, I have disabled it but the rendering is the same.
I have tried to make 2 writes at the same time, and the speed of 20-25Mb per second, is divided into 2 the 2 copies, giving 12Mb per second in each writing.
I have tried to enable a second CIFS service on the "passive" controller that only has 3 disks associated with the OS. I have enabled a 1GB share, I have written tests and I get the same speeds.
I have launched the sysstat with the cabin in production. It is currently in production, both in writings and readings and at that time and had also launched a writing of a single 250Mb file.
Options cifs output:
CLCALC03-01> options cifs cifs.AD.retry_delay 0 cifs.LMCompatibilityLevel 1 cifs.W2K_password_change off cifs.W2K_password_change_interval 4w cifs.W2K_password_change_within 3600h cifs.audit.account_mgmt_events.enable off cifs.audit.autosave.file.extension cifs.audit.autosave.file.limit 0 cifs.audit.autosave.onsize.enable off cifs.audit.autosave.onsize.threshold 75% cifs.audit.autosave.ontime.enable off cifs.audit.autosave.ontime.interval 1d cifs.audit.enable off cifs.audit.file_access_events.enable on cifs.audit.liveview.allowed_users cifs.audit.liveview.enable off cifs.audit.logon_events.enable on cifs.audit.logsize 1048576 cifs.audit.nfs.enable off cifs.audit.nfs.filter.filename cifs.audit.saveas /etc/log/adtlog.evt cifs.bypass_traverse_checking on cifs.client.dup-detection ip-address cifs.comment cifs.enable_share_browsing on cifs.gpo.enable off cifs.gpo.trace.enable off cifs.grant_implicit_exe_perms off cifs.guest_account cifs.home_dir_namestyle cifs.home_dirs_public_for_admin on cifs.idle_timeout 900 cifs.ipv6.enable off cifs.max_mpx 253 cifs.ms_snapshot_mode xp cifs.netbios_aliases cifs.netbios_over_tcp.enable on cifs.nfs_root_ignore_acl off cifs.oplocks.enable on cifs.oplocks.opendelta 0 cifs.per_client_stats.enable off cifs.perfmon.allowed_users cifs.perm_check_ro_del_ok off cifs.perm_check_use_gid on cifs.preserve_unix_security off cifs.restrict_anonymous 0 cifs.restrict_anonymous.enable off cifs.save_case on cifs.scopeid cifs.search_domains cifs.show_dotfiles on cifs.show_snapshot off cifs.shutdown_msg_level 2 cifs.sidcache.enable on cifs.sidcache.lifetime 1440 cifs.signing.enable off cifs.smb2.enable on cifs.smb2.signing.required off cifs.smb2_1.branch_cache.enable off cifs.smb2_1.branch_cache.hash_time_out 3600 (value might be overwritten in takeover) cifs.snapshot_file_folding.enable off cifs.symlinks.cycleguard on cifs.symlinks.enable on cifs.trace_dc_connection off cifs.trace_login off cifs.universal_nested_groups.enable on cifs.widelink.ttl 10m
Also is SMB2 enabled?
according to the output of options cifs it seems that SMB2 is enabled if I'm not mistaken
Should fpolicy disable it and then do a writing test? Can disabling it affect production or can I do it without problem?
Disabling it will only affect fpolicy logging. Just do it real quick as a test.
Also, if that doesn't work one command I want to try is:
filer> options cifs.tcp_window_size 65535
After setting this, you will need to disconnect and reconnect your test machine. To make sure it works, ideally you would reboot but offlining and onlining the ethernet connection on your Windows PC should do (since it's a test machine).
The default is 17520 I believe in this release, and being larger should help. To double check, issue the options cifs.tcp_window_size without a value before changing.
I have restarted the passive controller and now I get 55Mb per second of transfer. This has improved, but it still doesn't reach 90MB per second that the CIFS resource is giving me in reading.
I have seen in netapp that the maximum value of tcp is this cifs.tcp_window_size 8388608 I have introduced it and rebooted the controller and now with this value if it is giving me writes of 80-85 Mb per second, they already resemble the read speed
I have various doubts, Is it harmful to set the maximum value?
Could you just restart the tcp cab service instead of restarting the controller completely? How do you do it if you can?
Finally, I could not disable fpolicy, I am not able to list which one is active to put it in the instruction
CIFS file policy is enabled.
CLCALC03-02> fpolicy show
Usage: fpolicy show <PolicyName>
CLCALC03-02> fpolicy _ The following commands are available; for more information type "fpolicy help <command>" create enable mon[itor] show destroy ext[ension] options vol[ume] disable help servers
fpolicy help - List of file policy commands. fpolicy show - File policy status command. fpolicy create - Create a new file policy. fpolicy destroy - Destroy an existing file policy. fpolicy enable - Enable specified file policy command. fpolicy disable - Disable specified file policy command. fpolicy ext[ension] - File policy file extension command. fpolicy options - File policy configuration command. fpolicy servers - File policy server command. fpolicy vol[ume] - File policy volume filtering command. fpolicy mon[itor] - File policy monitor command.
CLCALC03-02> fpolicy disable
Usage: fpolicy disable <PolicyName>
I can't get the name of the policy to make it disabled. Sometimes it is no longer necessary and my problem is only the value of TCP
Ok don't worry about fpolicy. I wouldn't say 8M of a TCP window size, but maybe something in between 65k and 8M. You'll have to test it. Also the restart I mean was on the Windows client, not the filer.
After testing and setting the maximum allowed value and checking that the transfers have improved, I have been able to verify that the transfer is also not constant and I have lowered the tcp value. I remain in tests to see how it evolves.
the value that I have put
options cifs.tcp_window_size 786420
I have been multiplying the value of 65536 by 2 and testing until it has already given me a transfer close to 90Mb per second.