Question

Supposons, je voulais développer le site de débordement de pile. Comment puis-je estimer la quantité de matériel de base nécessaire pour soutenir ce site en supposant 1 million de demandes par jour. Y a-t-il des études de cas qui explique les améliorations de performances possibles dans cette situation?

Je sais que goulot d'étranglement d'E / S est le principal goulot d'étranglement dans la plupart des systèmes. Quelles sont les options possibles pour améliorer les performances d'E / S? Peu d'entre eux que je connais sont

  1. cache
  2. réplication
Était-ce utile?

La solution

Vous pouvez améliorer les performances des E / S de plusieurs manières en fonction de ce que vous utilisez pour votre configuration de stockage:

  1. Augmenter la taille du bloc de système de fichiers si votre application affiche une bonne localisation spatiale dans son E / S ou utilise des fichiers volumineux.
  2. Utilisez RAID 10 (striping + Mirroring) pour la performance + redondance (défaillance du disque protection).
  3. Utilisez des disques rapides (Performance Wise: SSD> FC> SATA).
  4. Isoler les charges de travail à différents moments de la journée. par exemple. Sauvegarde pendant la nuit, l'application normale E / S pendant la journée.
  5. Désactiver mises à jour atime dans votre système de fichiers.
  6. gère le fichier NFS cache alias Haystack (Facebook) , si le stockage de données sur le serveur NFS.
  7. Combiner de petits fichiers en morceaux plus grands, alias BigTable , HBase .
  8. Évitez de très grands répertoires à savoir beaucoup de fichiers dans le même répertoire (diviser au lieu des fichiers entre différents répertoires dans une hiérarchie).
  9. Utilisez un cluster système de stockage (ouais pas exactement du matériel de base).
  10. Optimiser / concevoir votre application pour le disque séquentiel accès chaque fois que possible.
  11. memcached. :)

Vous pouvez consulter les "leçons apprises" du StackOverflow architecture .

Autres conseils

vérifier cet outil pratique:

http://www.sizinglounge.com/

et un autre guide de Dell:

http: / /www.dell.com/content/topics/global.aspx/power/en/ps3q01_graham?c=us&l=en&cs=555

si vous voulez que votre propre communauté comme stackoverflow, vous pouvez vous inscrire avec StackExchange.

vous pouvez lire quelques études de cas ici:

Haute Évolutivité - Comment Rackspace utilise maintenant MapReduce et Hadoop à Query téraoctets de données http://highscalability.com/how- Rackspace-maintenant-utilisations-MapReduce-et-Hadoop-query-téraoctets-data

http: //www.gear6 .com / Gear6-téléchargements? fid = 56 & dlt = étude de cas & ls = Veoh-étude de cas

1 million de demandes par jour est de 12 / seconde. Débordement de pile est assez petit pour que vous puissiez (avec des tours de normalisation et de compression intéressante) adapter entièrement dans la RAM d'un 64 Go Dell PowerEdge 2970. Je ne suis pas sûr où la mise en cache et la réplication doivent jouer un rôle.

Si vous avez un problème de penser assez sur la normalisation, un PowerEdge R900 avec 256 Go est disponible.

Si vous ne voulez pas un seul point de défaillance, vous pouvez connecter quelques-unes des personnes et il suffit de pousser les mises à jour sur une prise (de préférence sur une autre carte réseau). Même une charge maximale de 12K / seconde ne devrait pas être un problème pour un système de mémoire principale.

La meilleure façon d'éviter le goulot d'étranglement d'E / S est de ne pas faire d'E / S (autant que possible). Cela signifie une architecture semblable avec Prevayler écrit par lots (aucun problème à perdre quelques secondes de données), essentiellement un fichier journal et pour la réplication les écrire également à une prise.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top