Bill Herde
asked on
Increase DSNRO value on vsphere 6.0
I have a SQL2014 VM running on a dedicated vsphere host which is having disk latency issues. The storage itself is very fast and continues to boast of sub-msec response times. Vsphere reports 2 - 3 msec under heavy load, but Windows says it sees sometimes 100 - 200 msec latency. I have increased queue depth for the PVSCSI adapters on the VM, ensured the volumes are distributed across multiple adapters, ensured storage is using 64k blocks from the array to windows. The last step would be to set the storage requests (DSNRO) on the volume to match the queue depth.
I have found several blogs on writing a script to set all of a certain device type with a DSNRO to maximum, and several agree this is the command line to use.
esxcli storage core device set -O | --sched-num-req-outstandin g value -d device_ID
However, running this with the appropriate value and ID returns
PowerCLI C:\> esxcli storage core device set -O | --sched-num-req-outstandin g 128 -d eui.e0ddb0f8fa8184426c9ce9 0013
66043e
+ esxcli storage core device set -O | --sched-num-req-outstandin g 128 - ...
+ ~
Missing expression after unary operator '--'.
At line:1 char:37
+ esxcli storage core device set -O | --sched-num-req-outstandin g 128 - ...
+ ~~
Expressions are only allowed as the first element of a pipeline.
At line:1 char:39
+ ... xcli storage core device set -O | --sched-num-req-outstandin g 128 -d ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'sched-num-req-outstanding ' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordE xception
+ FullyQualifiedErrorId : MissingExpressionAfterOper ator
If I run
esxcli.storage.core.device .list()
There is no value named "sched-num-req-outstanding " listed. The value shows as NoofoutstandingIOswithcomp etingworld s.
Looking through the 6.0 documentation I can confirm the sched-num-req-outstanding value is the one I am supposed to set to make the change I want, but I do not understand what is wrong with the command given.
This is an area I am only beginning to venture into, and need some guidance.
Yes, I am using a test bed to learn this.
I have found several blogs on writing a script to set all of a certain device type with a DSNRO to maximum, and several agree this is the command line to use.
esxcli storage core device set -O | --sched-num-req-outstandin
However, running this with the appropriate value and ID returns
PowerCLI C:\> esxcli storage core device set -O | --sched-num-req-outstandin
66043e
+ esxcli storage core device set -O | --sched-num-req-outstandin
+ ~
Missing expression after unary operator '--'.
At line:1 char:37
+ esxcli storage core device set -O | --sched-num-req-outstandin
+ ~~
Expressions are only allowed as the first element of a pipeline.
At line:1 char:39
+ ... xcli storage core device set -O | --sched-num-req-outstandin
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'sched-num-req-outstanding
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordE
+ FullyQualifiedErrorId : MissingExpressionAfterOper
If I run
esxcli.storage.core.device
There is no value named "sched-num-req-outstanding
Looking through the 6.0 documentation I can confirm the sched-num-req-outstanding value is the one I am supposed to set to make the change I want, but I do not understand what is wrong with the command given.
This is an area I am only beginning to venture into, and need some guidance.
Yes, I am using a test bed to learn this.
ASKER CERTIFIED SOLUTION
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.