none
SQL Server 2014 - plus de 1000 bases dans une instance RRS feed

  • Question

  • Bonjour,

    Nous avons un client dont l'application génère plus de 1000 bases dans une instance (1300 dans une instance et 1700 dans une autre). Ces 2 instances sont hébergées sur 2 serveurs ayant les mêmes spec tech ci-dessous.

    J'ai lu que SqlServer 2014 peut gérer 32767 bases par instance. Pbm : notre client commence à se plaindre de ralentissement =8-O, avec une saturation de la RAM avec du swap et un CPU à 99%. J'ai limité l'utilisation de la RAM à 9Gb dans SSMS. Un reboot a permis de soulager les serveurs mais pour combien de temps.

    Quelles recommandations pouvons nous lui suggérer pour les nouveaux serveurs qu'il veut nous commander ? Augmenter la taille de la mémoire ? Jusqu'à 32Gb ? Plus ? 

    Je n'ai pas trouvé d'infos sur le technet concernant ce nombre de bases par instances. Merci d'avance pour vos réponses.

    Cdlt, PcSi-L

    Nom du système d'exploitation:              Microsoft Windows Server 2008 R2 Entreprise

    Version du système:                         6.1.7601 Service Pack 1 version 7601

    Fabricant du système:                       VMware, Inc.
    Modèle du système:                          VMware Virtual Platform
    Type du système:                            x64-based PC
    Processeur(s):                              8 processeur(s) installé(s).
                                                [01] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [02] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [03] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [04] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [05] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [06] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [07] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
                                                [08] : Intel64 Family 6 Model 44 Stepping 2 GenuineIntel ~2666 MHz
    Version du BIOS:                            Phoenix Technologies LTD 6.00, 14/04/2014
    Répertoire Windows:                         C:\Windows
    Répertoire système:                         C:\Windows\system32
    Périphérique d'amorçage:                    \Device\HarddiskVolume1
    Option régionale du système:                fr;Français (France)
    Paramètres régionaux d'entrée:              fr;Français (France)
    Fuseau horaire:                             (UTC+01:00) Bruxelles, Copenhague, Madrid, Paris
    Mémoire physique totale:                    16 383 Mo
    Mémoire physique disponible:                4 107 Mo
    Mémoire virtuelle : taille maximale:        40 956 Mo
    Mémoire virtuelle : disponible:             24 132 Mo
    Mémoire virtuelle : en cours d'utilisation: 16 824 Mo

    jeudi 1 juin 2017 10:04

Réponses

  • Bonjour

    Quel est le working set actif des donénes ?

    Est ce que vous utilisez globalement 1 Gb de données de manière active sur chacune des bases ? Si c'est le cas, 1TB de RAM me semble approprié. Si ce n'est que 10 MB par base, 10GB pourraient a la rigeur suffire.On peut aussi partir d'une abse de clalcul simple : 8 GB de RAM par core. 64 Gb dans votre cas ne me semblent pas démesuré vu le nombre de BDs.

    Si ça se trouve, il faudrait 128, 256 ... Dans tous els cas, plus il y a de RAM mieux SQL Se porte.Pour SQL 2014, l'edition standard est limitée à 128Gb.

    cdlt

    Christophe


    Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM

    • Marqué comme réponse PcSi-L mardi 4 juillet 2017 16:52
    mercredi 7 juin 2017 14:40

Toutes les réponses

  • Bonjour,

    Pour qu'un serveur SQL soit performant, il lui faut le maximum de RAM possible pour mettre les informations en cache. Qu'un serveur SQL utilise 100% de la ram disponible n'est pas forcément anormal puisque c'est le comportement par défaut.

    Toutefois, il est impossible de vous conseiller sur la capacité nécessaire tout simplement car cela dépend des applications qui utilisent ces bases derrières et de leur prérequis à respecter.


    Merci de marquer comme réponse les sujets qui vous ont permis d'avancer afin que cela puisse être bénéfique aux personnes qui rencontrent le même problème.

    jeudi 1 juin 2017 10:20
  • Bonjour

    Quel est le working set actif des donénes ?

    Est ce que vous utilisez globalement 1 Gb de données de manière active sur chacune des bases ? Si c'est le cas, 1TB de RAM me semble approprié. Si ce n'est que 10 MB par base, 10GB pourraient a la rigeur suffire.On peut aussi partir d'une abse de clalcul simple : 8 GB de RAM par core. 64 Gb dans votre cas ne me semblent pas démesuré vu le nombre de BDs.

    Si ça se trouve, il faudrait 128, 256 ... Dans tous els cas, plus il y a de RAM mieux SQL Se porte.Pour SQL 2014, l'edition standard est limitée à 128Gb.

    cdlt

    Christophe


    Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM

    • Marqué comme réponse PcSi-L mardi 4 juillet 2017 16:52
    mercredi 7 juin 2017 14:40
  • Bonjour Christian, tout d'abord merci pour la réponse pointue.

    Qu'entend tu par "working set" ? Comment le mesure-t-on ?

    Les bases font entre 5Gb (qq unes) et 10 Mo (la plus part). Nous avons demandé une extension de RAM à 24Gb. Seuls 4 proco sont occupés par SqlServer, lié à la licence.

    Cdlt, PcSi-L

    mardi 4 juillet 2017 17:20
  • Bonjour

    La portion des donnes actives. On peut avoir une table de plusieurs centaines de GB ou plus et n'utiliser activement qu'une toute petite partie. Par exemple une table de commandes, dans laquelle seules les commandes des derniers 3 mois sont utilisées activement.

    Une fois en prod, on peut toujours utiliser sys.dm_os_buffer_descriptors et faire un group by par database_id et object_id  pour savoir à un instant T qui consomme du buffer pool.

    Seuls 4 procs utilisés ? Comment est constituée la VM ? L'édition standard supporte 24 cores, mais seulement 4 sockets. L'erreur serait de faire une VM 6 ou 8 sockets 1 core (ce que fait par défaut VMWare). Il serait bien plus judicieux de faire du 1 socket 8 cores afin de contenir sur le noeud NUMA.

    cdlt

    Christophe


    Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM

    mardi 4 juillet 2017 19:35