Rapide, puissant et économique : un serveur aux performances suffisantes pour une base de données de petite entreprise pour moins de 1000 $ US
(c) Alexey Kovyazin, IBSurgeon, 21 septembre 2017 (dernière mise à jour - 29 septembre 2017)
Il est facile d’obtenir un serveur puissant si vous êtes prêt à dépenser beaucoup de $$$ : il existe des vendeurs leaders comme Dell, HP, et de nombreuses sociétés matérielles moins connues, ils seront heureux de vous vendre une machine puissante (généralement, avec une livraison en 4 à 6 semaines).
Cependant, l’argent est toujours un problème, surtout pour les petites entreprises et les start-ups, il y a donc une forte demande pour des solutions bon marché « assez bonnes ». Cet article décrit l’approche pratique pour construire un serveur de base de données « assez bon » avec des performances suffisantes pour une petite entreprise. Il contient également des calculs et des liens vers les produits spécifiques que nous recommandons.
Notre société ( IBSurgeon) fournit des services de conseil et de soins pour les bases de données Firebird, et nous voyons de nombreux types de serveurs (ou, mieux dit, des ordinateurs utilisés comme serveurs). Les grands clients utilisent des configurations haut de gamme avec SAN sur SSD, 350+Go de RAM et double Xeon haut de gamme à bord, mais les clients de petites et moyennes entreprises utilisent des machines moins puissantes car ils n’ont pas besoin de beaucoup de puissance de calcul et ils n’ont pas beaucoup d’argent.
Nous avons remarqué que de nombreux serveurs sont en réalité des postes de travail ordinaires, et, le plus intéressant, ils fonctionnent de manière assez stable pendant des années et des années. Il y a des choses vraiment exotiques, comme Windows XP sur un ordinateur avec 2Go de RAM (l’ordinateur a été construit en 2002 !), mais la majorité d’entre eux sont simplement des solutions matérielles auto-construites « assez bonnes ».
Bien sûr, c’est une question de statistiques, et personne ne recommandera d’utiliser un poste de travail comme serveur, mais la question est : où est l’équilibre entre stabilité et dépenses ? Est-ce une bonne approche d’utiliser un serveur fait maison bon marché en termes de rapport qualité-prix ? Que pouvons-nous obtenir pour 1000 USD ? Quels sont les risques liés au matériel non coûteux ?
Qui peut être intéressé par un serveur de base de données à moins de 1000 USD ?
Considérons la situation suivante : un bureau avec 20 à 25 employés, les gens travaillent 7x5, la taille de la base de données est d’environ 50Go. C’est une situation typique pour une petite entreprise, qui utilise un ERP, un CRM ou une application spécifique (par exemple, un système d’automatisation de cabinet dentaire) pour des applications de petites entreprises basées sur Firebird.
Imaginons que l’entreprise ne soit pas submergée d’argent et qu’elle veuille économiser autant que possible, sans perdre la fiabilité, pour obtenir des performances assez bonnes. La personne responsable dans une entreprise comprend que tout matériel tombera en panne tôt ou tard, et veut réduire les risques associés.
Quel type de serveur ont-ils besoin pour une base de données Firebird de cette taille et de cette charge ? Selon le Guide matériel Firebird, la ressource la plus critique pour la base de données est l’E/S disque, ensuite la RAM, et enfin le CPU (intéressant, que lorsque les clients des PME achètent des serveurs auprès des grands vendeurs, ils choisissent souvent des serveurs avec des CPU puissants et des disques lents, probablement en raison de documents marketing qui surestiment l’importance du CPU).
Disques
Une E/S rapide signifie que nous avons besoin de disques SSD (solid state drives) car le SSD est le roi des lectures et écritures aléatoires. Bien sûr, le SSD n’est pas une panacée pour les bases de données, mais il offre des performances vraiment élevées, et c’est maintenant le bon choix pour les bases de données.
Le SSD se décline en deux variétés - les disques de qualité entreprise et les disques de qualité grand public. La différence clé entre eux est une ressource, approximativement calculée comme un nombre d’opérations d’E/S qu’ils peuvent effectuer.
Par exemple, Samsung 850 Pro 256 Go MZ-7KE256BW - SSD de qualité grand public (basé sur la technologie MLC), il a un TBW (total bytes written) de 150 pétaoctets, et un DWPD (Disk Writes Per Day) = 0,16. Ou, plus simplement, la ressource peut être expliquée comme 40Go d’écritures chaque jour pendant 10 ans.
Mise à jour : nous avons eu une suggestion, que Samsung PM863a (181,59 $) ou SM863a (249 $) sont plus fiables que le 850 Pro, mais toujours abordables - essentiellement, pour 60 $ supplémentaires, nous pouvons obtenir une meilleure stabilité et une certaine protection contre les surtensions électriques.
Est-ce beaucoup ou pas ? Nous avons un serveur de test avec un SSD de qualité grand public où nous exécutons des tests de charge pour simuler le travail intensif de 100 connexions sur une base de données de 60Go. Chaque jour, 3 tests de ce type, de 3 heures chacun, sont lancés - cela signifie que ces tests simulent une journée de travail de 9 heures. Les tests fonctionnent depuis 2 ans déjà, et la ressource restante (selon le firmware) est de 54%.
Bien sûr, ~50% de ressource signifie que le disque doit être remplacé au cours de l’année prochaine… Est-ce si grave ? Tous les quelques années, la vitesse des SSD augmente et les prix baissent : le SSD de l’exemple a 6Gb/s et coûte 137 $, dans 2-3 ans il y aura des disques 12G pour le même prix.
Prix Amazon à partir de 124 USD
Les SSD de qualité entreprise sont construits sur la base d’une autre technologie (SLC), et peuvent effectuer approximativement 30x plus d’opérations que le SSD de qualité grand public de la même taille. De plus, ils coûtent environ 3x plus que les SSD de qualité grand public. La question est : avons-nous vraiment besoin de 30x plus de cycles d’E/S pour le serveur de petite entreprise pour un prix 3x ?
Si nous cherchons une solution rapide et abordable, il est très attrayant d’utiliser des SSD bon marché de qualité grand public et de les remplacer régulièrement (et de surveiller leur ressource avec le firmware, bien sûr).
Risques associés au SSD
En tant que personnes adéquates, nous comprenons que le matériel de qualité grand public a moins de ressource et de fortes chances de tomber en panne, nous devons donc réduire ces chances. Comment pouvons-nous le réduire ?
Pour diminuer la chance d’une panne matérielle soudaine, il est nécessaire d’utiliser 2 SSD pour la base de données, regroupés en RAID1. RAID1 ne signifie pas que nous avons besoin d’un contrôleur RAID séparé, il sera assez bon d’utiliser les capacités RAID des chipsets de cartes mères modernes - essentiellement, il y a un simple contrôleur RAID sans cache.
Mise à jour : puisque les contrôleurs RAID bon marché sur les cartes mères ne peuvent pas prendre en charge la fonction TRIM des SSD, pour éviter la dégradation des performances, il est recommandé de configurer un RAID logiciel, qui orchestre les opérations simultanées au niveau logiciel.
S’il n’y a pas de cache, quelle sera la performance ? Les SSD modernes, comme le Samsung de l’exemple, ont un cache intégré et des contrôleurs très intelligents - ils sont donc assez rapides sans contrôleurs RAID dédiés.
Bien sûr, il est nécessaire de vérifier la santé des disques ; généralement, le firmware fournit une estimation assez bonne de la durée de vie des disques.
Sauvegardes
Bien sûr, nous avons besoin de disques pour les sauvegardes. Le meilleur choix sera une paire de disques SATA de 2To chacun - par exemple, Seagate SkyHawk 2TB Surveillance Hard Drive, avec 5900 tr/min.
Prix Amazon : 74,99 $
Nous avons besoin de 2 disques durs car les disques de sauvegarde doivent également être placés en RAID1, afin de fournir une protection contre la panne matérielle soudaine. Ces disques de sauvegarde peuvent être assez lents, leur objectif principal est de stocker les sauvegardes et de fournir une vitesse adéquate de lecture/écriture séquentielle. Les disques à 5900 tr/min sont plus lents que ceux à 7200 tr/min, mais ils sont connus pour être plus fiables. Cette série spécifique de disques (Seagate SkyHawk) est conçue pour les écritures linéaires : c’est ce dont nous avons besoin pour les sauvegardes.
Risques pour les disques de sauvegarde
Le risque est le même que pour le SSD, et nous nous en protégeons de la même manière : RAID1 et surveillance. Il devrait y avoir peu de chances que les deux disques du RAID1 tombent en panne simultanément.
Disque système
Avons-nous besoin d’un disque séparé pour le système d’exploitation ? Dans la configuration la moins chère - non, il sera assez bon de garder l’OS et la base de données sur le même disque. Cela accélérera légèrement la dégradation du SSD, mais pas tellement - dans notre scénario, il devrait certainement tenir pendant 3 ans.
CPU
Pour un serveur de base de données Firebird, il est préférable de choisir un CPU avec de nombreux cœurs et une fréquence aussi basse que possible. Oui, vous avez bien lu - il n’y a pas besoin de CPU haute fréquence pour un serveur de base de données. Firebird (s’il est configuré correctement) utilise tous les cœurs pour le travail normal, mais ne les charge pas à 100%.
Il y a des exceptions : certaines opérations de maintenance (sauvegarde et restauration) qui bénéficient d’un CPU rapide, et des requêtes SQL mal écrites avec une mauvaise utilisation des index - elles consomment 100% du cœur, mais c’est une marque claire que l’optimisation des performances de la base de données est requise. En général, il n’est pas possible de compenser les requêtes lentes avec des CPU haut de gamme : même si le CPU est 3x plus rapide, la requête lente sera toujours lente.
D’un autre côté, avoir plusieurs cœurs peut compenser l’existence de telles requêtes consommatrices de CPU : avec un nombre d’utilisateurs inférieur à 25 et avec 8 cœurs, il n’y a pas une si grande chance que tous les cœurs soient simultanément occupés par les requêtes lentes.
Et, puisque nous cherchons la solution bon marché, nous sommes limités aux CPU de bureau - et, désolé de le dire, aux puces AMD. Essentiellement, si Intel pouvait fournir un processeur de bureau avec 8 cœurs pour le même prix ou légèrement plus élevé que l’AMD FX-8320E, nous pourrions utiliser Intel aussi, mais à l’heure actuelle, je ne vois pas une telle option.
Cette puce AMD n’est pas si moderne et pas si rapide, mais elle a 8 cœurs, et elle est bon marché, c’est donc le choix optimal pour notre serveur rapide et bon marché.
Prix Amazon : 108 USD
Risques associés au CPU de bureau
Quel est le risque potentiel associé au CPU ? Pour les puces à basse fréquence (c’est-à-dire non overclockées) avec un refroidisseur adéquat, il n’y a presque aucun risque. Quand avez-vous entendu parler d’un CPU de bureau en panne la dernière fois - en 2003 ? Bien sûr, les CPU de serveur sont beaucoup plus rapides, mais nous cherchons une solution assez bonne.
C’est une bonne idée de surveiller la charge et la température du CPU pour prévenir les redémarrages occasionnels.
RAM
La quantité de RAM nécessaire dépend de la taille de la base de données et du nombre d’utilisateurs. Dans notre scénario, la taille de la base de données est de 50Go et nous avons un maximum de 30 utilisateurs.
La taille maximale que Firebird peut consommer est la taille de la base de données (dans ce cas, elle sera entièrement mise en cache en RAM) plus 200-300Mo par utilisateur (dans le cas de Firebird 2.5 SuperClassic). Donc, la taille maximale idéale de RAM est de 64Go, mais puisque nous voulons économiser, et puisque nous avons un SSD rapide, nous pouvons utiliser aussi peu que 16Go.
Certains utilisateurs dans un tel scénario fonctionnent bien même avec 8Go, mais 8Go est assez serré : dans ce cas, aucune autre application ne devrait être utilisée sur le même serveur. 16Go est le minimum optimal recommandé.
Prix Amazon : 59,99 USD x 2 = 120 $
Risques associés à la RAM
La RAM est plus vulnérable aux pannes que les CPU mais moins que les disques. La RAM de qualité entreprise a des mécanismes spéciaux pour réduire la possibilité d’erreurs, comme les contrôles de parité. Comment pouvons-nous estimer et diminuer le risque de pannes mémoire ?
Premièrement, il existe des méthodes pour vérifier les puces mémoire, et si de tels tests ont été réussis, les puces RAM fonctionneront pendant de nombreuses années. Deuxièmement, lorsque la RAM tombe en panne, c’est généralement très visible : l’ordinateur a soit un écran bleu de la mort, soit une panique du noyau, soit des redémarrages fréquents : tous ces symptômes nécessitent une vérification et, en cas de mauvais résultats, le remplacement de la RAM.
Carte mère
La carte mère est une partie importante de tout ordinateur. Heureusement, les cartes mères modernes pour ordinateurs de bureau sont très fiables, surtout les cartes mères sorties il y a 4 à 5 ans - elles ont toutes les mises à jour nécessaires et elles sont stables. Et - oui, elles sont bon marché.
Nous avons besoin d’une carte mère avec support RAID, avec une puce vidéo intégrée, et avec suffisamment de connecteurs SATA. Quelque chose comme celle-ci :
ASUS M5A78L-M Plus/USB3 DDR3 HDMI DVI USB 3.0 760G MicroATX Motherboard
Prix Amazon : 74,99 USD
Elle a des critiques très positives, et elle est facilement configurée pour avoir RAID1.
Boîtier de bureau
Nous avons besoin d’un boîtier de bureau pour connecter tous les composants de l’ordinateur, avec une alimentation suffisante. Quelque chose comme ceci : 76,82 $ http://amzn.to/2ydeYs1
UPS
La seule chose qui ne fait pas partie du serveur, mais qui devrait équiper chaque ordinateur avec des données importantes à l’intérieur - une source d’alimentation sans interruption (UPS).
L’UPS protège un ordinateur contre les coupures de courant et les fluctuations. Dans notre expérience, une surtension ou une perte de courant anormale de l’ordinateur est la principale source de corruptions de bases de données.
Quelque chose comme CyberPower CP1200AVR, pour 117,97 $, devrait être assez bon.
Total
Ainsi, nous obtenons le prix total de tous les composants informatiques et de l’onduleur = 855,27 USD - c’est même moins de 1000 USD, cependant, avant que ces composants ne deviennent un ordinateur fonctionnel, ils doivent être assemblés, équipés d’un système d’exploitation et testés.
| Article | Prix | Qté | Total |
|---|---|---|---|
| SSD Samsung 850 Pro 256 Gb MZ-7KE256BW | 124,24 $ | 2 | 248,48 |
| Seagate SkyHawk 2TB Surveillance Hard Drive | 74,99 | 2 | 149,98 |
| CPU AMD FX-8320E | 86,02 $ | 1 | 86,02 |
| RAM Corsair Vengeance 8GB | 61,99 $ | 2 | 123,98 |
| Carte mère ASUS M5A78L-M Plus | 57 $ | 1 | 57 |
| Boîtier de bureau | 69,99 $ | 1 | 69,99 |
| CyberPower CP1200AVR | 119,82 $ | 1 | 119,82 |
| Total | 855,27 |
Assemblage du serveur
Pour assembler toutes ces pièces en un serveur fonctionnel et y installer un système d’exploitation (nous recommanderions une variante de Linux, comme CentOS7+ ou Ubuntu Server 16+), tous ces composants doivent être assemblés/connectés correctement.
Ce n’est pas difficile, il suffit d’un tournevis, de patience et de temps pour lire attentivement les instructions et regarder quelques vidéos YouTube. Il y a 10 ans, presque chaque développeur était capable d’assembler un ordinateur à partir de ces pièces, aujourd’hui c’est différent, mais ce n’est toujours pas difficile.
Et si vous ne voulez pas assembler le serveur ?
Il existe un raccourci - il est possible d’acheter un ordinateur avec une configuration similaire qui correspond presque à nos besoins, et d’y brancher des composants supplémentaires (c’est-à-dire des disques).
Je recommanderais de jeter un œil à cet ordinateur - conçu à l’origine comme PC de jeu, il possède un CPU à 8 cœurs et 16 Go de RAM, et ne coûte que 709 USD.
Il sera nécessaire de l’équiper (ouvrir le boîtier et brancher) avec une paire de disques SSD (+248,48 $), un disque de sauvegarde supplémentaire (+74,99 $) et, bien sûr, un onduleur (+119,82 $). Le total sera de 1153 USD - c’est plus élevé que l’objectif de 1000 $, principalement en raison de la carte vidéo et du joli boîtier de bureau. Vous devrez également configurer le RAID1 (dans le BIOS) et, bien sûr, y installer un système d’exploitation serveur au lieu de Windows 10 Home préinstallé.
Cette approche peut être utilisée pour transformer un puissant ordinateur de bureau en serveur - il suffit d’y ajouter des SSD redondants et des disques de sauvegarde.
Par le passé, de nombreuses PME et startups ont utilisé de tels serveurs auto-construits, mais aujourd’hui, il y a une tendance à utiliser des machines virtuelles basées sur le cloud.
Comment les machines virtuelles se comparent-elles à un serveur auto-construit ?
Bien sûr, construire et maintenir son propre serveur nécessite certaines compétences (pas aussi élevées qu’il n’y paraît), c’est pourquoi de nombreuses entreprises veulent se débarrasser de tous les serveurs matériels (et, éventuellement, licencier l’administrateur système responsable des serveurs).
Dans le prochain article, nous examinerons une VM dans le cloud comme serveur de base de données pour les PME.
Plus d’articles sur les performances de la base de données Firebird :
- Guide matériel Firebird
- Optimisation d’une base de données Firebird de 1,7 To
- Service d’optimisation des performances Firebird
- 45 façons d’accélérer la base de données Firebird
- Collection de fichiers de configuration Firebird optimisés
Contactez-nous
N’hésitez pas à poser vos questions : [email protected].
Remerciements
Merci beaucoup aux personnes qui ont envoyé des suggestions et des améliorations pour cet article :
- Vlad Khorsun
- Dmitri Kuzmenko
- Pavel Zotov
- Sergey Nikitin
- Emil Mustea