Type de serveur pouvant traiter 1 million de requetes

Discussion dans 'Demandes d'avis et de conseils sur vos sites' créé par joboy84, 25 Mai 2008.

  1. joboy84
    joboy84 WRInaute discret
    Inscrit:
    1 Octobre 2007
    Messages:
    76
    J'aime reçus:
    0
    Bonjour,

    Je travaille sur le développement d'un service. (je ne peux pas en dire plus pour le moment)

    Les clients utilisant le service vont générer environs 1 millions de requêtes mysql dans un premier temps.

    Les requêtes sont toujours identiques et du type SELECT.

    Je voudrais savoir s'il est possible de calculer le minimum niveau configuration du serveur dont j'aurai besoin pour autant de requêtes?

    Je pense prendre mon serveur chez ovh.

    Merci
     
  2. DadouDuck
    DadouDuck WRInaute impliqué
    Inscrit:
    28 Mai 2007
    Messages:
    812
    J'aime reçus:
    0
    Es tu certain d'avoir besoin d'autant de requêtes, que tu ne peux optimiser ces dernières? Utiliser un système de cache?
     
  3. joboy84
    joboy84 WRInaute discret
    Inscrit:
    1 Octobre 2007
    Messages:
    76
    J'aime reçus:
    0
    Je ne suis pas un spécialiste, c'est aussi pour cela que je demande vos points de vues et conseils :lol:

    Mon service est un système de black listage tel rbl par exemple.

    Le serveur du client se connecte sur mon serveur afin de vérifier si l'adresse ip de son utilisateur est listée dans la base.

    Voila, c'est déjà tout...

    Je voulais d"abord opter pour un système avec un fichier texte qui contiendrait les ip black listées, mais le problème est que la base étant mise à jour très régulièrement, cela ne permettrait pas au client d'avoir toujours la liste mis à jour en temps réel.

    Le systeme de mise en cache ne devrait pas etre d'une trop grande aide vu que la requete n'est à priori jamais la même, vu que l'ip de l'utilisateur change pour chaque client :)

    Merci
     
  4. FloBaoti
    FloBaoti WRInaute impliqué
    Inscrit:
    30 Avril 2006
    Messages:
    640
    J'aime reçus:
    0
    Salut,

    1 million de requêtes en combien de temps? Par minute, par heure, par jour... ?

    Plus la taille de ta base de données sera grande, plus un serveur avec beaucoup de mémoire RAM est conseillé (MySQL mettra des informations en cache dans la RAM si le serveur est bien configuré).
     
  5. joboy84
    joboy84 WRInaute discret
    Inscrit:
    1 Octobre 2007
    Messages:
    76
    J'aime reçus:
    0
    Il s'agit d'un million de requêtes par jour...

    Merci
     
  6. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Re: Type de serveur pouvant traité 1 millions de requetes mi

    Un million de requêtes par jour, ça peut donner des choses très différentes en fonction de nombreux paramètres:
    - répartition du trafic dans la journée: avec une répartition "classique", il faut compter une pointe à environ 3 à 4 fois la moyenne, donc 35 à 50 requêtes/seconde; avec une répartition beaucoup plus "concentrée" (avec une grosse pointe très courte), ça peut être beaucoup plus;
    - complexité de la requête. Un "select chose from table where clef=valeur" (où valeur est numérique et clef est indexé) ça consomme évidemment beaucoup moins de ressources qu'un select complexe avec 12 jointures, quelques opérations multi-lignes (sum, count, avg, group by...) avec peu de possibilité d'indexation;
    - taille de la base de données et de la partie "chaude" (la partie réellement accédée souvent... Il y a tout plein de bases de données qui font des tonnes de Go mais dont seulement quelques % sont réellement utilisées l'essentiel du temps)
    - possibilité de mettre en place un cache
    - éventuellement, les contraintes en termes de rapidité (les requêtes doivent-elles être services en ms, centaines de ms, secondes, dizaines de secondes...)?
    - et probablement plein d'autres choses.

    Dans ton cas, a priori:
    - la répartition du trafic devrait être assez "normale"
    - la requête est simple ("select 1 from table where ip=?"), facilement indexable (si tu as une proportion intéressante d'étendues d'adresses consécutives plutôt que d'adresses isolées il peut convenir de faire un "select 1 from table where ? between start and end")
    - reste à savoir combien tu vas avoir d'entrées dans ta table; idéalement, il faut que l'ensemble de la table (+index) tienne en cache (de l'OS), donc que tu aies la quantité de RAM correspondante (+ de la place pour l'OS, le serveur mysql et le reste)
    - tu peux avoir intérêt à utiliser un fichier d'index type Berkely DB, GDBM, CDB ou autre plutôt qu'une base mysql (ça va dépendre de la fréquence des mises à jour et du temps de mise en place): l'overhead par entrée (aussi bien en termes de place qu'en termes de CPU) sera nettement plus faible je pense.

    Bref, pour quelques millions d'entrées une machine avec un 1 Go de RAM devrait largement faire l'affaire. Le reste (CPU, disque...) n'aura pas grande importance.

    Jacques.
     
  7. joboy84
    joboy84 WRInaute discret
    Inscrit:
    1 Octobre 2007
    Messages:
    76
    J'aime reçus:
    0
    Bonjour,

    Voici quelques précisions:

    -La base contient entre 100000 et 200000 adresses ip, pour une taille de 5 à 10 MO au maximum.

    -Les requetes étant effectuées par les clients, je pense avoir des nombres de requêtes importantes tout au long de la journée (le client n'a qu'un fichier php à ajouter sur son serveur et de faire un include sur les pages souhaitées...Puis le script se connecte à ma base de données pour vérifier si l'ip de l'utilisateur est listée ou non...)

    - Concernant les mises à jour elles sont quasi effectuées en "non stop" car un script vérifie en permanence quelle ip réponds et quelle ip ne répond plus. Si elle ne réponds plus elle est supprimée de la base...Ceci afin d'éviter au maximum les faux positifs.

    Concernant la structure de ma table, la voici:

    Code:
    CREATE TABLE `listeIpClient` (
      `id` int(10) unsigned NOT NULL auto_increment,
      `adresseIp` varchar(15) default '0',
      `DateInsertion` date NOT NULL default '0000-00-00',
      PRIMARY KEY  (`id`),
      UNIQUE KEY `adresseIp` (`adresseIp`)
    ) ENGINE=MyISAM
    
    Concernant le script, c'est assez simple effectivement:

    Code:
    <?php 
    $Extraction = mysql_fetch_assoc(mysql_query('SELECT dateValidite FROM websites WHERE pseudo=\'' . $pseudo . '\' AND url=\'' . $adresse . '\'') OR exit(mysql_error()) );
    
    if(empty($adresse) || empty($pseudo) || $Extraction['dateValidite'] < $date)
        echo 'Erreur: Des parametre sont manquants.';
    
    elseif (mysql_num_rows(mysql_query('SELECT adresseIp FROM listeIpClient WHERE adresseIP=\'' . $_SERVER['REMOTE_ADDR'] . '\'') OR exit(mysql_error()) > 0)
    //Je pourrais aussi remplacer le code ci-dessus par:
    //SELECT count(*) FROM listeIpClient WHERE adresseIP='$IPaVerif'
    //Que me conseillez vous afin d utiliser le moins de ressources possibles?
    
        $resultat = present;
    else
        $resultat = nonListe;
    
    mysql_close();
    ?>
    
     
  8. DadouDuck
    DadouDuck WRInaute impliqué
    Inscrit:
    28 Mai 2007
    Messages:
    812
    J'aime reçus:
    0
    Est ce bien pertinent, en effet, si elle ne répond plus suite à une panne temporaire du serveur, as tu mis en place un système de compteur, qui si elle ne répond plus sur une période donnée, alors elle est supprimée?

    Euh, en relisant bien ton topic, de quelle IP parles tu? IP serveur mail, IP domaine, IP internaute...??
     
  9. joboy84
    joboy84 WRInaute discret
    Inscrit:
    1 Octobre 2007
    Messages:
    76
    J'aime reçus:
    0
    Bonjour,

    Oui un système de compteur a été mis en place... :D

    Concernant les ip, il s'agit d'adresses ip de serveurs proxy ou de pc zombies listées dans ma base.

    Ensuite, le client peut vérifier si son utilisateur se connecte à partir d'un proxy ou non avec son adresse ip...(utile pour les proxy anonymes)
     
Chargement...
Similar Threads - Type serveur pouvant Forum Date
Attaque de type DDOS UDP sur un serveur VPS Administration d'un site Web 27 Novembre 2018
Quel type de serveur si je veux proposer un section de téléchargements ? Administration d'un site Web 8 Avril 2013
Quel type de serveur pour mon projet? Administration d'un site Web 15 Septembre 2012
Développement module inscription entre site en joomla et serveur de type VoipSwitchde Développement d'un site Web ou d'une appli mobile 13 Juillet 2012
Quel hebergeur et quel type de serveur dédié ? Administration d'un site Web 6 Octobre 2010
Whois et type de serveur Administration d'un site Web 30 Septembre 2010
Penser vous qu'un serveur de ce type peut supporter 1 à 2 millions de visiteurs par mois: Administration d'un site Web 13 Octobre 2009
[Consolidation] Types de serveurs Administration d'un site Web 7 Janvier 2009
Problème de configuration serveur - Type mime et fichier xml Administration d'un site Web 14 Avril 2008
Quel type de serveur / hébergement pour ce genre de site ? Administration d'un site Web 20 Juin 2007
WordPress Migrer un site depuis Typepad vers Wordpress Développement d'un site Web ou d'une appli mobile 13 Avril 2022
Question à propos de deux types d'annonce AdSense 21 Février 2022
Moyenne sur un champs du type varchar Développement d'un site Web ou d'une appli mobile 15 Novembre 2021
Site type Ranker Demandes d'avis et de conseils sur vos sites 11 Novembre 2021
Plein de backlinks .blogspot.com type spam : que faire ? Référencement Google 28 Septembre 2021
Mettre un itemprop="name" ou itemprop="url" sans avoir de itemscope ou itemtype ? Débuter en référencement 13 Avril 2021
Un titre est il obligatoire pour un contenu type Facebook ? Demandes d'avis et de conseils sur vos sites 4 Février 2021
Données structurées : quel @type Développement d'un site Web ou d'une appli mobile 20 Novembre 2020
Quel @type / schema.org pour mon site ? Débuter en référencement 27 Septembre 2020
Quel type de client_id perso dans GTM ? Développement d'un site Web ou d'une appli mobile 15 Juillet 2020