Saturday, 31 January 2015

Experiments with iNodes (Files) and Memory Utilization

Here are the results of some experiments with CDOT 8.2.1 and seeing if setting max files affects memory utilization at the time of setting or not. This is of course using a SIM in VMware Workstation, the SIM has been given 4GB RAM, and we’re taking the memory stats from the Windows 7 resource monitor. Whether this is valid experiment, I leave it up to the reader to decide. And - hopefully this isn’t a stupid question - does anyone know of a way to get memory stats from a NetApp via the CLI?

1) Create 10 largish volumes for a SIM (max vol size for the SIM is 16t)

vol create -volume vol001 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol002 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol003 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol004 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol005 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol006 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol007 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol008 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol009 -size 10t -aggregate aggr1 -space-guarantee none
vol create -volume vol010 -size 10t -aggregate aggr1 -space-guarantee none

2) Output of ::> vol show -field files,files-used

vserver volume files  files-used
------- ------ ------ ----------
SVM1    vol001 31876689 97
SVM1    vol002 31876689 97
SVM1    vol003 31876689 97
SVM1    vol004 31876689 97
SVM1    vol005 31876689 97
SVM1    vol006 31876689 97
SVM1    vol007 31876689 97
SVM1    vol008 31876689 97
SVM1    vol009 31876689 97
SVM1    vol010 31876689 97

CHECK 1: Post Volume creates

Image: Commit (KB) = 56’980, Working Set (KB) = 1’874’360, Shareable (KB) = 1’831’080, Private (KB) = 43’280

3) Mount All the Volumes

vol mount -volume vol001 -junction-path /vol001
vol mount -volume vol002 -junction-path /vol002
vol mount -volume vol003 -junction-path /vol003
vol mount -volume vol004 -junction-path /vol004
vol mount -volume vol005 -junction-path /vol005
vol mount -volume vol006 -junction-path /vol006
vol mount -volume vol007 -junction-path /vol007
vol mount -volume vol008 -junction-path /vol008
vol mount -volume vol009 -junction-path /vol009
vol mount -volume vol010 -junction-path /vol010

CHECK 2: Post Mounting the Volumes

Image: Commit (KB) = 56’980, Working Set (KB) = 1’874’360, Shareable (KB) = 1’831’080, Private (KB) = 43’280

Result = no (discernable) change

4) Create Shares to All the Volumes

cifs share create vol001 -path /vol001
cifs share create vol002 -path /vol002
cifs share create vol003 -path /vol003
cifs share create vol004 -path /vol004
cifs share create vol005 -path /vol005
cifs share create vol006 -path /vol006
cifs share create vol007 -path /vol007
cifs share create vol008 -path /vol008
cifs share create vol009 -path /vol009
cifs share create vol010 -path /vol010

CHECK 3: Post Creating the Shares

Image: Commit (KB) = 58’700, Working Set (KB) = 1’876’068, Shareable (KB) = 1’831’120, Private (KB) = 44’948

Result = no (discernable) change

5) Mapping the Shares to a Windows Client

net use * \\SVM1\vol001
net use * \\SVM1\vol002
net use * \\SVM1\vol003
net use * \\SVM1\vol004
net use * \\SVM1\vol005
net use * \\SVM1\vol006
net use * \\SVM1\vol007
net use * \\SVM1\vol008
net use * \\SVM1\vol009
net use * \\SVM1\vol010

CHECK 4: Post Mapping to the Shares

Image: Commit (KB) = 57’572, Working Set (KB) = 1’874’944, Shareable (KB) = 1’831’124, Private (KB) = 43’820

Result = no (discernable) change

6) Modifying the iNodes count (Max Files) Per Volume

vol modify -volume vol001 -files 2040109444
vol modify -volume vol002 -files 2040109444
vol modify -volume vol003 -files 2040109444
vol modify -volume vol004 -files 2040109444
vol modify -volume vol005 -files 2040109444
vol modify -volume vol006 -files 2040109444
vol modify -volume vol007 -files 2040109444
vol modify -volume vol008 -files 2040109444
vol modify -volume vol009 -files 2040109444
vol modify -volume vol010 -files 2040109444

CHECK 5: Post Increasing iNodes

Image: Commit (KB) = 57’572, Working Set (KB) = 1’874’944, Shareable (KB) = 1’831’124, Private (KB) = 43’820

Result = no (discernable) change

FINAL CONCLUSION

From this test, it would appear that modifying the maxfiles number does not result in an immediate increase in memory consumption at the time of application of the setting; and that the increase in memory utilization will occur when the iNodes are used.

APPENDIX: From CDOT Man Pages

[-files {integer}] - Total Files (for user-visible data)
This optionally specifies the total number of files for user-visible data permitted on the volume. This value can be raised or lowered. Raising the total number of files does not immediately cause additional disk space to be used to track files. Instead, as more files are created on the volume, the system dynamically increases the number of disk blocks that are used to track files. The space assigned to track files is never freed, and the files value cannot be decreased below the current number of files that can be tracked within the assigned space for the volume.

1 comment:

  1. So one way that you may be able to check the memory on the nodes themselves is in diag mode do a statistics show-periodic -object bufcache -instance bufcache -interval 5

    ReplyDelete