Question De quel type de serveur ai-je besoin pour traiter 10 millions de requêtes et de requêtes mySQL par jour? [fermé]


Je suis un débutant en administration de serveur et je recherche un puissant service d'hébergement pour héberger mon nouveau site web. Ce site Web est fondamentalement le back-end d’un jeu en ligne mobile et il:

  • gérer jusqu'à 10 millions de requêtes HTTPS et mySQL par jour
  • stocker jusqu'à 2000 Go de fichier sur le disque dur
  • transférer probablement 5000 Go de données par mois
  • il fonctionne sur PHP et MySQL
  • La base de données mySQL contient 10 millions d’enregistrements. Pour chaque enregistrement, il y a 5 à 10 champs, environ 100 octets chacun.

Je ne sais vraiment pas quel type de serveur il me faut pour gérer ces exigences, ma question est la suivante:

  1. De quel processeur / RAM ai-je besoin pour un serveur dédié ou un VPS?
  2. Quelles sociétés d'hébergement sont en mesure de proposer ce type de serveur dédié ou VPS?
  3. Qu'en est-il du cloud computing? J'ai effectué une recherche sur Amazon EC2, mais cela me semble compliqué. Et j'ai contacté Rackspace, mais étrangement, ils ont dit que Cloudsites n'était pas adapté à mes besoins. Je me demande s'il existe une autre société d'hébergement en nuage.
  4. Une autre méthode alternative?

18
2018-03-19 06:52


origine


nous avons contourné cela avec 2 serveurs linux avec 8 Go de RAM, le mysql est un cluster mysql et la base de données est stockée dans la mémoire rapide rapide, cpu n'est jamais vraiment si vous utilisez une bonne distribution, et le disque devra seulement être utilisé prendre des instantanés toutes les heures vous donne la redondance en cas d'échec. Aussi, vous voudrez peut-être installer mysqltuner pour pouvoir garder un œil sur les index, etc., en tirer le meilleur parti possible, mais aussi pour ajouter de nombreux index et tenir un journal des requêtes lentes. Pour le Web, cela peut être très économique. Ajoutez simplement une charge. équilibreur sur le devant pour diviser le trafic - minus4
Pourquoi ne pas utiliser un service cloud? Azure, Amazon, RackSpace, GoGrid, Heroku? - bbqchickenrobot


Réponses:


Un bureau pas cher?

Entrons dans les maths.

  • 10 millions de demandes.
  • Cela correspond à 416667 demandes par heure.
  • Cela se décompose à 6944 demandes par minute.
  • Cela se décompose à 116 demandes par seconde.

Le double de cela (charge de pointe) et nous parlons de charge, qu'un bureau à quatre cœurs bon marché peut gérer SI les requêtes sont assez simples et vous ne dites pas vraiment à quel point elles sont complexes.

  • 5000 Go par mois est trivial - sérieusement, les mêmes calculs s'appliquent.
  • Cela se décompose à 208 Go / jour
  • Cela se décompose à 8 Go / heure
  • Cela tombe à 148 Mo / minute
  • Cela se résume à 2,5 Mo / seconde, 25 Mbits. Double pour le pic - 50 Mbits, trivial pour tout centre d'hébergement. Vous coûtera, cependant.

  • Stockez 2000 Go sur le disque dur. Ce sont des disques durs de 2x2000 Go dans un RAID? À moins que: c’est pour la base de données, qu’il y ait beaucoup d’IO complexes, c’est alors qu’une douzaine de disques et BEAUCOUP de disques SAS de 73 Go à 15 000 tr / min dans un RAID 10 (environ 60 disques) permet d’obtenir les E / S nécessaires - ceci La question ne peut être traitée sans BEAUCOUP plus d’informations sur les modèles d’accès aux données.

  • Fonctionne avec PHP et MySQL - Mon téléphone mobile peut le faire;) La question est de savoir comment l’application est complexe. MySQL PEUT ou NE PEUT PAS être une solution acceptable ici, BTW l. - Cela nécessiterait plus de tests. Il y a une raison pour laquelle certaines personnes utilisent encore d'autres bases de données commerciales plus grandes.

  • De quel processeur / RAM ai-je besoin pour un serveur dédié ou un serveur VPS?

On pourrait dire que cela dépend de la logique (combien de calculs dans la partie PHP, l'intelligence ou le manque de programmeurs et beaucoup d'autres questions.

Sérieusement, ceci est une configuration non-triviale. Faites-vous examiner par des spécialistes.

En gros, vous devez vous lever et faire vos devoirs. Beaucoup de questions ne sont pas répondues sous cette forme. Surtout parce que vous ne semblez pas vous soucier de vos données ...

  • Des sauvegardes?
  • Pas de plan d'urgence? Je veux dire, les serveurs meurent - vous êtes donc d'accord pour que le site soit hors service pendant plusieurs jours tandis que le remplacement est configuré?

31
2018-03-19 07:01



Merci pour votre réponse. le php est simple, je suppose que le fardeau principal repose sur MySQL, j'ai testé certaines requêtes MySQL sur mon ordinateur portable (Core2 Duo) avec WAMP sous Windows. Avec 10 millions d'entrées dans MySQL, chaque requête coûte en moyenne 0,1 seconde. combien plus fort avec Quad Core être à la gestion des requêtes MySQL? - Calvin
Oubliez le quad core. Votre ordinateur portable SUCKS dans IO - et IO est l'endroit où les bases de données ne sont pas limitées. Vous n’avez qu’UN disque dur, à savoir SLOW et ROBUST (latop). Les serveurs utilisent plusieurs disques durs qui sont rapides (mais pas robustes). J'utilise un serveur SQL Server quad core avec MS et je peux gérer plus de 500 lots par seconde sur des sélections simples (un lot étant une sélection) sans utiliser le processeur au maximum - mais j'obtiens BEAUCOUP d'activité sur le disque sur un sous-système de disque potentiellement plus de 30 fois plus vite que le vôtre (et ce n'est pas encore impressionnant). Les disques sont la limite. Plus bonne programmation. - TomTom
Votre trafic SSL devra être chiffré / déchiffré, vous voudrez peut-être le décharger sur un équilibreur et faire un proxy inverse sur un serveur http normal. Cela devrait réduire la latence. vous pouvez aussi vous faire du cryptage dans le matériel aussi .......en.wikipedia.org/wiki/SSL_acceleration  si le budget ne vous préoccupe pas pour l'utilisation de votre base de données ramsan.com/success/ccpgames.htm - The Unix Janitor


Pour ajouter une partie de mon expérience qui pourrait être utile:

  • Comme TomTom l'a mentionné, il est difficile / impossible de fournir des spécifications exactes, car cela dépend en grande partie de la conception et de la mise en œuvre de votre application. Le matériel qui me donne ou demande à quelqu'un d'autre X requêtes / s risque de ne pas bien fonctionner pour vous.
  • J'ai un serveur MySQL dédié (Intel Core2 Duo E4600 à 2,40 GHz, 4 Go de RAM) qui traite en moyenne 100 requêtes / s (près de 10 millions / jour) avec un taux d'inactivité du processeur de 90%. Outre quelques modifications de base à la configuration, il fonctionne bien en raison d'une lecture lourde (+ 95% de lectures) et le jeu d'enregistrements actif est facilement contenu dans la mémoire. Tenez compte de la taille de votre ensemble actif lorsque vous choisissez la quantité de RAM du serveur, car cela peut faire une grande différence. Assurez-vous de bien comprendre la différence entre la taille de votre base de données et la taille du jeu d'enregistrements actif. Par exemple, mes bases de données totalisent environ 7 Go, mais l'ensemble actif ne représente probablement que quelques 100 Mo.
  • De même, j'ai un serveur Apache de spécifications similaires, qui traite environ 1 million de requêtes par jour, ce qui correspond à un taux moyen d'inactivité du processeur d'environ 95%. Les demandes sont un mélange de requêtes AJAX de données cartographiques très simples et de pages MediaWiki plus complexes.
  • L'analyse comparative de votre application spécifique est un bon début pour essayer de déterminer exactement ce dont vous avez besoin. Vous ne voulez pas sous-estimer mais surestimer peut être tout aussi mauvais en raison du gaspillage potentiel d'argent et d'effort.
  • Considérez non seulement le taux de demande moyen mais le taux de pointe. Vous ne voulez pas d'un serveur qui peut à peine gérer le taux moyen, car le taux de demandes peut varier considérablement au cours d'une journée, d'une semaine et d'un mois. Par exemple, je peux obtenir 3 à 4 fois le trafic pendant les heures de pointe le week-end, comme je le fais au moins pendant la semaine. Cela varie en fonction de votre application et de votre base d'utilisateurs.
  • Pouvez-vous mettre en cache l'une de vos requêtes base de données / HTTP? Cela peut considérablement augmenter votre taux de demande avec du matériel moins cher / moins coûteux en fonction de la quantité de mémoire cache que vous pouvez mettre en cache.
  • Considérez vos options de dimensionnement pour la croissance future maintenant plutôt que plus tard. Une bonne option peut être d’utiliser une mise à l’échelle horizontale qui vous permettrait de commencer avec un minimum de matériel et de grandir facilement au besoin.
  • Une conception correcte de votre couche d’application peut avoir un effet considérable sur ses performances ultimes. Une requête SQL incorrecte sur une table sans index peut être un ordre de grandeur plus lent qu'une requête correctement conçue. De même, les serveurs Apache / MySQL mal configurés peuvent être souvent plus lents que lorsqu’ils sont correctement configurés.

7
2017-12-18 20:46