Got it

Loads are not balanced between links of a virtual disk when leastIO algorithm is enabled

102 0 0 0 0

Hi team!

Here’s a valuable case for you.

[Question]

There are 34 paths on a virtual disk. The min_task algorithm is used to select paths. Load balancing between controllers is enabled. Why do performance statistics show that read I/Os are distributed on 32 paths only?

8


[Possible Cause]

When the queue depth of a virtual disk is smaller than the number of paths, after UltraPath selects paths for I/Os in the queue, paths in front of the path chain have completed forwarding I/Os. At this time, UltraPath selects the paths in front of the path chain again to forward I/Os. Therefore, some paths at the bottom of the path chain have not forwarded any I/O.

In this case, after UltraPath selects a path for 32 times, I/Os on the paths in front of the path chain have been forwarded. UltraPath selects the paths from the beginning of the path chain and so the remaining two paths have not forward any I/O.

[Solution]

When I/Os are performed on multiple virtual disks, loads can be balanced between paths.

For I/O operations on a single virtual disk, you can run the following command to set the queue depth to a value larger than the number of paths of the virtual disk first:

chdev -l hdiskX -a queue_depth=VALUE

Ensure that the disk is not in use before running this command.

Table1 Parameter description

Parameter

Description

hdiskX

Name of the virtual disk that you want to operate.   Obtain the name from the system administrator.

VALUE

Queue depth that you want to set. Set the value   based on the number of paths of the virtual disk.

 

After running the chdev -l hdisk2 -a queue_depth=64 command, the following result is displayed:

-bash-3.00# chdev -l hdisk2 -a queue_depth=64

hdisk2 changed

After the result is displayed, run the lsattr -El hdisk2 command to confirm the configuration. The command output is as follows:

-bash-3.00# lsattr -El hdisk2

clr_q no Device CLEARS its Queue on error True

location Location Label True

lun_id 0x2000000000000 Logical Unit Number ID False

max_transfer 0x40000 Maximum TRANSFER Size True

node_name 0x21000022a1073fdd FC Node Name False

pvid 00007e1d245280d00000000000000000 Physical volume identifier False

q_err yes Use QERR bit True

q_type simple Queuing TYPE True

queue_depth 64 Queue DEPTH True

reassign_to 120 REASSIGN time out value True

rw_timeout 30 READ/WRITE time out value True

scsi_id 0x10600 SCSI ID False

start_timeout 60 START unit time out value True

ww_name 0x20180022a1073fdd FC World Wide Name False

-bash-3.00#

The preceding command output shows that the queue depth has been changed to 64.


Comment

You need to log in to comment to the post Login | Register

Notice: To protect the legitimate rights and interests of you, the community, and third parties, do not release content that may bring legal risks to all parties, including but are not limited to the following:
  • Politically sensitive content
  • Content concerning pornography, gambling, and drug abuse
  • Content that may disclose or infringe upon others ' commercial secrets, intellectual properties, including trade marks, copyrights, and patents, and personal privacy
Do not share your account and password with others. All operations performed using your account will be regarded as your own actions and all consequences arising therefrom will be borne by you. For details, see " User Agreement."

My Followers

Login and enjoy all the member benefits

Login

Block
Are you sure to block this user?
Users on your blacklist cannot comment on your post,cannot mention you, cannot send you private messages.
Reminder
Please bind your phone number to obtain invitation bonus.