2 points par computerphilosopher 5 시간 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Les paramètres par défaut de ZFS sont définis comme un compromis entre accès séquentiel et accès aléatoire
    • Si l’on connaît clairement les caractéristiques de la charge de travail, un tuning plus agressif est possible
  • Explication de la différence entre accès séquentiel et accès aléatoire
    • Sur HDD, à cause du déplacement des têtes, les performances en accès aléatoire peuvent être des dizaines à des centaines de fois plus lentes que celles en accès séquentiel
    • Même sur SSD, l’accès aléatoire s’est nettement amélioré, mais l’accès séquentiel reste plus efficace
    • Une charge qui lit de gros fichiers dans l’ordre a une forte tendance à l’accès séquentiel
    • Une charge qui lit fréquemment de nombreux petits fichiers a facilement une forte tendance à l’accès aléatoire
  • Présentation des méthodes d’analyse de la charge de travail
    • Raisonnement logique basé sur le code ou la structure
    • Calcul de la taille moyenne des E/S à partir du débit (bps) + du nombre d’E/S par seconde (iops)
    • Analyse de la distribution des tailles d’E/S via zpool iostat -r
  • Interprétation de zpool iostat -r
    • ind : taille de chaque requête logique individuelle
    • agg : taille des E/S réellement fusionnées et exécutées
    • Si agg est supérieur à ind, cela signifie que la fusion des E/S adjacentes fonctionne bien
  • Résultats de l’analyse d’une charge de travail exemple
    • Environ 76 % de lectures synchrones
    • Plus de 99 % des lectures sont de 32 KiB ou moins
    • Les écritures asynchrones ont elles aussi une forte proportion de petites E/S
    • Globalement, il s’agit d’une charge avec une très forte tendance à l’accès aléatoire
  • zfs_prefetch_disable
    • ZFS précharge dans l’ARC les blocs adjacents lorsqu’il détecte un schéma d’accès séquentiel
    • Sur une charge à accès aléatoire, le taux de succès du prefetch peut être faible et n’augmenter que les E/S inutiles
    • Il est possible de mesurer l’efficacité du prefetch à partir de arc_summary
    • Si le taux de succès est faible, on peut envisager zfs_prefetch_disable
  • recordsize
    • La valeur par défaut est 128K
    • Dans la charge d’exemple, la majorité des E/S étant de 32 KiB ou moins, on peut envisager un recordsize plus petit
  • Choix de la valeur optimale
    • Il est important de la déterminer sur la base de benchmarks
    • Pour des bases de données comme MySQL/Postgres, il existe déjà de nombreux cas de tuning validés
    • En général, on utilise souvent un recordsize proche de la taille des pages de la base de données

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.