2 votes

étrange performance des périphériques bruts sur Aerospike ASD 3.15.1.4

J'ai une grappe de 4 serveurs. L'un des espaces de noms est basé sur des périphériques bruts. Les périphériques résident sur un disque dur mécanique SAS.

Voici maintenant la partie la plus étrange de l'histoire. J'exécute l'un des tests avec de petits enregistrements (2x50 octets = 100 octets au total). J'arrive à écrire entre 150 et 200k OPS. Mais lorsqu'il s'agit de lire, le débit chute à 4k OPS !!! Oui, je sais, c'est très bizarre, et je suis complètement perdu.

Les serveurs sont très peu sollicités pendant la lecture. L'iotop et le nload ne montrent rien que je puisse identifier comme un problème.

Voici la configuration de l'appareil :

namespace test-raw {
        replication-factor 4
        memory-size 16G
        default-ttl 7200
        max-ttl 2D
        high-water-disk-pct 80
        high-water-memory-pct 60
        stop-writes-pct 90
        partition-tree-locks 64
        partition-tree-sprigs 4096

        storage-engine device {
                device /dev/sdb1
                write-block-size 1M
                max-write-cache 8G
                data-in-memory false
                cold-start-empty true
        } 
}

Toute information serait très appréciée.

Santé,

Boris.

3voto

Ronen Botzer Points 139

Vous ne devez pas utiliser un disque dur comme périphérique de stockage principal avec Aerospike, car vous ne bénéficierez pas de toutes les optimisations de bas niveau destinées aux disques SSD. Les disques durs ne sont pas conçus pour gérer un grand nombre de lectures simultanées, alors que c'est l'un des principaux avantages des disques SSD. Le seul endroit où un disque dur est approprié dans Aerospike est en tant que couche de persistance pour un espace de noms en mémoire. Votre espace de noms stocke ses données sur un périphérique, qui doit être un disque SSD de qualité entreprise (AKA DC quality).

Véase Comparaison des performances des disques SSD en fonction de la "recette de configuration" et le texte suivant de la Foire aux questions (FAQ) :

Puis-je stocker des données sur un disque dur plutôt que sur un disque SSD ?

Non. La base de données Aerospike est conçue pour être une base de données à haute performance et à faible latence, à faible latence. Pour cette raison, les limites physiques des disques rotatifs ajoutent une latence inacceptable aux données.

Passons maintenant aux solutions rapides :

1voto

pgupta Points 111

...puisque vos enregistrements ne font que 100 octets, vous utilisez probablement 256 octets par enregistrement (avec les frais généraux et les limites de 128 octets). Si la taille du bloc d'écriture, par défaut, est de 1 Mo, vous intégrez environ 4K enregistrements dans 1 Mo de RAM lors de l'écriture, qui sont envoyés de manière asynchrone sur le disque sous la forme d'un bloc de 1 Mo. En lecture, vous lisez des enregistrements individuels sur le disque par tranches de 128 octets. Si vous lisez un enregistrement récemment mis à jour, vous le récupérez probablement dans la file d'attente post-écriture en RAM, sinon vous accédez au disque. Le retard de lecture est donc dû à la lenteur des performances du disque pour les enregistrements qui doivent être extraits du disque. Si la taille du bloc d'écriture est de 128 Ko, vous pouvez placer environ 500 enregistrements par bloc. Vous pouvez jouer avec la taille des blocs d'écriture sur un cluster de test et voir si les performances suivent. Vérifiez la valeur write-q dans le fichier /var/log/aerospike/aerospike.log pour voir si le disque est lent. Si le disque n'est pas le goulot d'étranglement, write-q sera égal à zéro sous le débit d'écriture. Vous disposez d'un très grand cache d'écriture maximum - 8G - (64M est la valeur par défaut) qui vous aide également avec les écritures. Vous pouvez également tester la réduction de la file d'attente post-écriture à un très petit nombre et voir si le débit de lecture s'aggrave.

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