PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Intel SSD, maintenant hors de la liste sh..err, honteux

J'ai déjà fait la longue entrée de la conférence ici, donc juste une mise à jour rapide :les diapositives de PGEast sont publiées et la semaine prochaine, je serai à la conférence MySQL de plus en plus mal nommée à Santa Clara, en Californie.

Une chose pour laquelle je suis connu pour l'instant, c'est la diatribe sur les disques SSD bon marché et sur la façon dont ils sont nuls pour l'utilisation de la base de données. La page wiki Reliable Writes rassemble la plupart des informations de fond ici. La situation de ces dernières années a été que chaque lecteur bon marché sur le marché ne dispose pas d'un cache en écriture sécurisé pour l'utilisation de la base de données. Chaque client à moi qui a acheté l'un des disques SSD d'Intel, par exemple, soit le X25-M, soit le X25-E qui n'est pas du tout une entreprise, a subi au moins une perte massive de données par corruption.

Afin de sécuriser un lecteur flash, vous devez disposer d'une batterie de secours sur l'unité, pour les mêmes raisons qu'elles sont nécessaires sur les contrôleurs RAID hautes performances. Lorsque la base de données écrit des données et utilise l'appel système fsync pour s'assurer qu'elle est vidée sur le disque, vous ne pouvez pas physiquement écrire ces données assez rapidement pour rendre les gens heureux, que ce soit sur un disque en rotation ou sur un flash. La situation est un peu pire même sur le flash, car l'écriture de minuscules commits de données sans cache épuisera également le lecteur plus rapidement. Ajoutez une batterie, faites en sorte que le contrôleur du disque vide toutes les données en attente en cas de panne de courant, et vous pouvez rendre le SSD suffisamment fiable pour les bases de données.

Les disques durs d'entreprise très coûteux ont obtenu ce droit depuis un certain temps déjà, mais le matériel adapté à un usage domestique ou aux petites entreprises est rare. OCZ a sorti son lecteur Vertex 2 Pro avec un super-condensateur et un vidage d'écriture approprié l'année dernière. Le condensateur est la partie "Pro", et ne le confondez pas avec le Vertex 2 standard. Ceux-ci coûtent environ 650 $ pour 100 Go de SSD, et sont très rapides. Mais vous ne pouvez pas avoir qu'un seul disque rapide :  ils échouent, comme n'importe quel autre composant de votre ordinateur. Et 1300 $ pour une paire de disques les ont laissés hors de portée des petits magasins, et même un seul a dépassé mon budget de bricolage personnel pour le matériel domestique.

Eh bien, maintenant, il y a un autre choix. Intel a finalement nettoyé son acte ici. Les nouveaux variateurs de la série 320 intègrent un ensemble de petits condensateurs et une logique d'arrêt appropriée dans le variateur. Ils l'ont même intégré au marketing maintenant qu'ils le font correctement, y compris un briefing sophistiqué sur la façon dont cela fonctionne. Soit dit en passant, c'est là où en est ce sujet :si le fabricant écrit correctement la mise en cache, il s'en vantera. Si vous n'entendez aucune vantardise, cela signifie qu'ils ont foiré et que le lecteur dévorera votre base de données.

Il existe toute une gamme de produits de ces nouveaux disques Intel disponibles, à partir d'un modèle de 40 Go à moins de 100 $, tous avec la même fiabilité d'écriture. Les disques plus gros sont cependant plus rapides, et je voulais quelque chose de plus rapide à tous points de vue que le disque dur ordinaire qu'il remplaçait. Ce point ne vient pas avant le modèle 220 $ 120 Go, qui a une vitesse d'écriture séquentielle plus rapide que les disques téraoctets que j'utilise la plupart du temps. L'un des disques Intel 320 de 120 Go est arrivé entre mes mains excitées plus tôt cette semaine.

Vous pouvez trouver les chiffres complets de mon examen initial sur pgsql-performance. Les paramètres de performances de base sont conformes aux attentes :253 Mo/s en lecture, 147 Mo/s en écriture et un respectable 5 000 commits/seconde, tous correspondant aux spécifications et aux attentes. La seule chose que je peux reprocher, ce sont les résultats de lecture/écriture aléatoires. Malgré les affirmations de nombres beaucoup plus élevés, je n'obtiens qu'environ 3500 IOPS, ce qui se traduit par 27 Mo/s sur une charge de travail mixte. C'est acceptable, fessant n'importe quel lecteur ordinaire, mais c'est plutôt bas en ce qui concerne le SSD. Je ne peux pas me plaindre étant donné le prix - si je veux plus vite, je peux toujours dépenser 3 fois plus pour l'OCZ Vertex 2 Pro - mais c'est quelque chose dont il faut être conscient. Il y a un tas de critiques éhontées d'amour d'Intel qui se trompent; la seule critique que j'ai vue jusqu'à présent qui a relevé le même problème et l'a mis dans une perspective appropriée est celle d'Anand. Il montre le lecteur de 300 Go de la série 320 (qui est encore plus rapide que celui que j'ai) offrant des vitesses moyennes au bas du pack sur un travail aléatoire, où il se trouve de manière réaliste. Ce n'est pas inacceptable, il est simplement important de comprendre l'ensemble des compromis que ces disques offrent.

Si vos données tiennent dans 120 Go, ce lecteur est une alternative très convaincante à la configuration de base de données haute performance traditionnelle. Obtenir un contrôleur RAID avec un cache en écriture sauvegardé par batterie et une paire de disques représente normalement environ 600 $, et vous n'obtenez que des performances d'E/S aléatoires équitables à partir du résultat. Achetez une paire de ces disques pour environ 450 $, utilisez le RAID logiciel pour la redondance, et vous serez en avance la plupart du temps. Assurez-vous simplement de suivre les bonnes pratiques de surveillance SMART pour ces lecteurs. Ils ne durent pas éternellement, la limite d'écriture étant un point de défaillance connu même si rien ne se brise avant. Il existe également de nombreux consommables avec l'ancienne technologie, y compris des disques de remplacement, des batteries de remplacement et parfois besoin d'avoir des contrôleurs supplémentaires comme pièces de rechange pour les systèmes critiques. Il devrait y avoir des économies de coûts avec le SSD maintenant tant que vos données tiennent dans la taille disponible. Et les performances vont être un grand pas en avant si vous utilisez le disque en ce moment. La meilleure façon d'augmenter les performances est d'ajouter plus de RAM, mais comme ces données doivent éventuellement aller vers et depuis le disque, cela n'est pas toujours suffisant.

Intel, vous obtenez mon pouce levé officiel ici :  vous avez enfin fait ce qu'il fallait, et je serai heureux de vous recommander en tant que fournisseur maintenant que vous l'avez fait. J'essaie toujours de comprendre ce que je vais faire avec mon serveur désormais plus rapide que jamais à la maison, et c'est un bon problème à avoir.