Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Snapshot VM peut causer une Error 701 ?


Sujet :

Administration SQL Server

  1. #1
    Futur Membre du Club
    Snapshot VM peut causer une Error 701 ?
    Bonjour,

    Je voulais savoir si un snapshot de VM (effectué via veeam) pouvait causer une erreur 701 :

    Erreur*: 701, Gravité*: 17, État*: 17.
    There is insufficient system memory in resource pool 'internal' to run this query.

    Erreur*: 3041, Gravité*: 16, État*: 1.
    BACKUP failed to complete the command BACKUP LOG SCB. Check the backup application log for detailed messages.

    l'instance utilise actuellement 3,5Gb de RAM sur les 57220Mb autorisé en paramètre mémoire max :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Process/System Counts                    Value
    ---------------------------------------- --------------------
    Available Physical Memory                53726179328
    Available Virtual Memory                 129355776
    Available Paging File                    63557885952
    Working Set                              3813281792
    Percent of Committed Memory in WS        100
    Page Faults                              5192837
    System physical memory high              1
    System physical memory low               0
    Process physical memory low              0
    Process virtual memory low               0
     
    (10*ligne(s) affectée(s))
     
    Memory Manager                           KB
    ---------------------------------------- -----------
    VM Reserved                              3801724
    VM Committed                             3670324
    AWE Allocated                            0
    Large Pages Allocated                    0
    Emergency Memory                         1024
    Emergency Memory In Use                  16
    Target Committed                         3674112
    Current Committed                        3670328
    Pages Allocated                          3159512
    Pages Reserved                           0
    Pages Free                               420744
    Pages In Use                             511456
    Page Alloc Potential                     2978952
    NUMA Growth Phase                        0
    Last OOM Factor                          2
    Last OS Error                            8
     
    (16*ligne(s) affectée(s))


    Je me dis donc que soit durant le snapshot de la VM il y a eu beaucoup d'activité consommant donc toute la RAM dispo, mais on voit sur le DBCC MEMORYSTATUS qui a eu lieu automatiquement suite à l'erreur que le VM Reserved est de 3.5Gb~, soit le snapshot de VM "fige" la RAM pour en faire la sauvegarde afin d'avoir la base dans un état consistant sur le snapshot et que pendant ce temps la, une transaction a voulu écrire en mémoire et la RAM étant figé, il y a eu cette erreur.

    Voici le résultat d'un DBCC memorystatus lancé automatiquement suite à l'erreur ainsi que l'erreur FAIL_PAGE_ALLOCATION 129 au tout début :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Failed allocate pages: FAIL_PAGE_ALLOCATION 129
     
    Process/System Counts                         Value
    ---------------------------------------- ----------
    Available Physical Memory                54137606144
    Available Virtual Memory                  116224000
    Available Paging File                    63806758912
    Working Set                              3778150400
    Percent of Committed Memory in WS               100
    Page Faults                                 4676535,Gb~é
    System physical memory high                       1
    System physical memory low                        0
    Process physical memory low                       0
    Process virtual memory low                        1
     
    Message
    Memory Manager                                   KB
    ---------------------------------------- ----------
    VM Reserved                                 3820772
    VM Committed                                3649588
    AWE Allocated                                     0
    Large Pages Allocated                             0
    Emergency Memory                               1024
    Emergency Memory In Use                          16
    Target Committed                            3620864
    Current Committed                           3649592
    Pages Allocated                             3531312
    Pages Reserved                                    0
    Pages Free                                    16080
    Pages In Use                                 966760
    Page Alloc Potential                        2472984
    NUMA Growth Phase                                 2
    Last OOM Factor                                   2
    Last OS Error                                     8



    J'ai cherché sur internet la signification de "Working Set" et de "Percent of Committed Memory in WS", mais je n'ai rien trouvé. Beaucoup de site en parle sans expliquer à quoi correspond ce paramètre, pourriez-vous me l'indiquer afin que je sache l’interpréter ?
    Par exemple, le site : https://support.microsoft.com/fr-fr/...ry-usage-on-sq ne l'explique pas.

    Cordialement,

    Donovan

  2. #2
    Rédacteur

    Non. Mais moins de 4 Go de RAM pour SQL Server c'est extrêmement faible !
    À moins que ce ne soit l'édition express, j'interdit toute descente en dessous de 6Go et préconise toujours au moins 16...

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Futur Membre du Club
    Citation Envoyé par SQLpro Voir le message
    Mais moins de 4 Go de RAM pour SQL Server c'est extrêmement faible !
    Bonjour et merci pour ton retour
    L'instance peut monter jusqu'à 57Gb de mémoire si nécessaire.
    C'est ce qui est en paramètre de mémoire max pour l'instance.

    Cordialement,

    Donovan

  4. #4
    Rédacteur

    N'avez-vous pas un peu trop de VLF ?

    Lisez l'article que j'ai écrit à ce sujet :
    http://mssqlserver.fr/verifier-le-no...-de-vos-bases/

    À +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Expert éminent sénior
    Hello,

    J'ai cherché sur internet la signification de "Working Set" et de "Percent of Committed Memory in WS", mais je n'ai rien trouvé. Beaucoup de site en parle sans expliquer à quoi correspond ce paramètre, pourriez-vous me l'indiquer afin que je sache l’interpréter ?
    Working Set correspond à la quantité de mémoire physique (RAM) validée et utilisée par le process sqlservr.exe. Dans ton cas au moment du DBCC MEMORYSTATUS tu avais ~3.5GB occupé par SQL Server.

    Ce qui est assez significatif dans ton contexte c'est le manque de mémoire virtuelle dans l'espace d'adressage virtuel (~11MB), ce qui est d'ailleurs notifié par SQL Server avec Process virtual memory low.

    C'est en général un symptôme de mémoire fragmenté qui réduit la taille du buffer pool ou qui commence à réduire les autres caches. Cette information peut être corroboré au niveau système avec la section Last OS Error 8. => Error 8 = ERROR_NOT_ENOUGH_MEMORY. Normal donc que tu aies rencontré des erreurs de pool interne et de sauvegarde (qui doit allouer de l'espace mémoire pour fonctionner) ...

    Est-ce que tu n'aurais pas eu d'autres messages dans le journal d'événements Windows à ce moment là? Et éventuellement une sortie plus complète de la sortie du DBCC MEMORYSTATUS ? Quelle version de SQL Server avec SP et CU ? Quelle version de Veeam?

    ++

  6. #6
    Futur Membre du Club
    Citation Envoyé par mikedavem Voir le message
    Hello,
    Working Set correspond à la quantité de mémoire physique (RAM) validée et utilisée par le process sqlservr.exe. Dans ton cas au moment du DBCC MEMORYSTATUS tu avais ~3.5GB occupé par SQL Server.
    Ah d'accord, merci pour l'information

    Citation Envoyé par mikedavem Voir le message

    Ce qui est assez significatif dans ton contexte c'est le manque de mémoire virtuelle dans l'espace d'adressage virtuel (~11MB), ce qui est d'ailleurs notifié par SQL Server avec Process virtual memory low.
    C'est étrange qu'il ai 11Mb en mémoire virtuelle alors qu'il peut monter (en tout) jusqu'à 57Gb de RAM sur le serveur.
    Il aurait donc pu pouvoir allouer plus de mémoire si nécessaire ? D'autant que l'on peut bien voir que la Available Physical Memory est de 53Gb

    Citation Envoyé par mikedavem Voir le message

    Est-ce que tu n'aurais pas eu d'autres messages dans le journal d'événements Windows à ce moment là? Et éventuellement une sortie plus complète de la sortie du DBCC MEMORYSTATUS ? Quelle version de SQL Server avec SP et CU ? Quelle version de Veeam?
    Je vais retourner sur le serveur et je te tiens informé.

    EDIT : Je confirme que lorsque cette erreur est arrivée, il y a bien eu un backup de transaction log via Veeam et un snapshot lors du backup.

    Donovan

  7. #7
    Expert éminent sénior
    Citation Envoyé par Scregneugneuu Voir le message

    C'est étrange qu'il ai 11Mb en mémoire virtuelle alors qu'il peut monter (en tout) jusqu'à 57Gb de RAM sur le serveur.
    Il aurait donc pu pouvoir allouer plus de mémoire si nécessaire ? D'autant que l'on peut bien voir que la Available Physical Memory est de 53Gb
    Il semblerait que le problème ne soit pas tant SQL Server mais quelque chose qui se passe au niveau OS et qui fragmenterait la mémoire.
    Mémoire fragmentée = Allocation de strutures en mémoire quasi impossible .. d'où l'erreur SQL Server (FAIL_PAGE_ALLOCATION) et l'erreur niveau OS (=8 => ERROR_NOT_ENOUGH_MEMORY)

    Est-ce que tu n'aurais pas un antivirus (coup classique) ou quelque chose du genre qui pourrait potentiellemen poser ce problème?
    Pas de traceflag particulier au démarrage de l'instance SQL Server ? => DBCC TRACESTATUS

    ++

###raw>template_hook.ano_emploi###