6 votes

Qu'est-ce qui pourrait causer une attente d'E/S sur un SAN ?

Je comprends l'attente IO quand je la vois sur un serveur, cela signifie que le CPU est bloqué pendant que j'attends que l'IO rattrape son retard. [source] .

J'essaie de comprendre pourquoi les statistiques d'un SAN montrent une attente d'E/S élevée - cela indique-t-il que le CPU du SAN est bloqué par le disque du SAN ou est-ce autre chose ?

8voto

jowi Points 111

Un SAN a une latence d'E/S beaucoup plus élevée qu'un disque local en raison des lois fondamentales de la physique. Ainsi, si votre application effectue de nombreuses petites écritures et fsync() après chacun, vous verrez beaucoup d'iowait.

Par exemple, voici deux répliques mysql du même ensemble de données contenant de nombreuses petites transactions, vous verrez que l'esclave sur le SAN passe beaucoup plus de temps à faire des entrées/sorties.

San : enter image description here

Local :

enter image description here

5voto

Basil Points 8771

Le temps d'attente du SAN peut signifier que votre stockage est le goulot d'étranglement. Il peut également s'agir des paramètres du serveur ou de la connexion entre vos serveurs et le stockage, mais le plus souvent, lorsque je constate un temps d'attente pour un disque SAN, c'est simplement que le SAN est occupé.

Tout d'abord, vérifiez les performances des disques qui soutiennent le volume. Vous recherchez des pics d'IO/s ou de MB/s en lecture ou en écriture, et potentiellement un pic d'utilisation du cache. Essayez d'examiner uniquement le matériel impliqué dans le volume que vous étudiez. De plus, regardez un peu en arrière et en avant dans le temps pour voir s'il y a eu des pics plus élevés qui n'ont pas causé de problèmes. Si tel est le cas, il est peu probable que le matériel de stockage soit à l'origine du problème. Une action corrective pour un goulot d'étranglement matériel sur le stockage pourrait inclure la migration de ce volume vers un autre pool ou RAID, ou l'augmentation du nombre de fuseaux ou de cache.

Deuxièmement, vérifiez les paramètres de profondeur de file d'attente sur le serveur. Si la profondeur de la file d'attente est très élevée, votre serveur verra des latences plus importantes pendant les périodes de forte utilisation. La profondeur de la file d'attente est un moyen pour le stockage de dire au serveur de réduire ses entrées/sorties pour permettre au stockage de rattraper son retard. 32 est un bon nombre moyen qui serait supporté par la plupart des OS de serveur et la plupart des dispositifs de stockage que j'ai vus. J'ai vu des valeurs supérieures et inférieures fonctionner également, mais si elle est fixée à 1024 ou autre, cela pourrait expliquer les temps d'attente élevés. Dans une situation où la profondeur de la file d'attente est très élevée, le serveur met en file d'attente tout ce qu'il veut faire, puis le stockage le fait aussi vite qu'il l'aurait fait si la profondeur de la file d'attente était beaucoup plus faible. Comme le serveur mesure le temps d'attente à partir du moment où un élément entre dans la file d'attente et en sort, le temps d'attente augmente.

Enfin, vérifiez les journaux d'erreurs du serveur. Assurez-vous qu'il n'y a pas de problèmes au niveau du transfert (comme les délais d'attente du disque ou les échecs de chemin). Si c'est le cas, vous devriez examiner le commutateur.

1voto

Samat Jain Points 165

La mesure n'est pas différente de celle d'un serveur : il y a plus de demandes d'entrée/sortie que ne peuvent en traiter les ressources matérielles disponibles.

1voto

longneck Points 22437

L'attente élevée d'E/S signalée par le logiciel de gestion du SAN signifie que le matériel du SAN ne peut pas répondre aux demandes de vos clients du SAN. Cela peut être dû au fait que votre matériel n'a tout simplement pas la capacité de supporter votre charge, ou que quelque chose est défaillant et ne fonctionne pas correctement.

Une défaillance lente d'un disque entraînant des performances médiocres est en fait assez courante, notamment dans les configurations RAID5. Extrayez les journaux SMART de tous vos disques et je parie que vous trouverez un disque avec un nombre très élevé d'erreurs corrigées. (La correction de ces erreurs prend du temps. Si une erreur individuelle est corrigée dans un certain laps de temps, le contrôleur RAID n'enregistre pas d'erreur. Mais si vous accumulez un grand nombre de ces erreurs, cela prend beaucoup de temps. Et c'est ainsi que vous obtenez de mauvaises performances).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X