• # Concernant la mémoire

    Posté par (site web personnel) . En réponse à la dépêche Incident du 26 août 2025 ayant touché les serveurs de production et de développement. Évalué à 8.

    comprendre la surconsommation mémoire ? (les boucles actives expliquent la consommation processeur, mais pour la mémoire ?)

    Prenons ce court bout de code :

    for fd in range(3, X):
     try:
     os.close(fd)
     except:
     pass

    Avec la valeur X=10000000, il s'exécute en 6s avec python2 .

     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
     2609 alpha 20 0 342120 325216 4088 R 100.0 0.1 (snip) python2
    real 0m6.304s
    

    Avec la valeur X=100000000, il s'exécute en 66s toujours avec python2. Et la mémoire s'affole.

     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
     2610 alpha 20 0 3206084 3.041g 4108 R 100.0 1.2 (snip) python2
    real 1m5.876s
    

    Même machine, même code, juste en exécutant avec python3. Beaucoup plus raisonnable en mémoire. Par contre la boucle active occupe toujours le processeur forcément.

     PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
     2611 alpha 20 0 28732 10032 5424 R 100.0 0.0 (snip) python3
    real 1m0.274s
    

    Du coup il y a une fuite quelque part avec Python2, pas directement liée au code lui-même.