2013-12-13 10 views

Odpowiedz

0

Jak OpCache zasadniczo działa w ten sam sposób, jak robi APC (przechowując prekompilowanego skryptu kodu bajtowego w pamięci współdzielonej), a to confirmed że APC opcode cache jest współdzielona pomiędzy basenami PHP-FPM jeśli oni rozpoczęty przez samego mistrza proces, 128 MB będzie również współdzielone między 4 pulami.

1

Jak wspomniano przez raina77ow przez link że 128 MB będzie współdzielony betweeen 4 baseny

Dodając do tego, jak wspomniano w oficjalnej dokumentacji

; Sets how much memory to use 
opcache.memory_consumption=128 

opcache.memory_consumption zbiorów Limit pamięci, który będzie używany bez względu na to, ile twoich pul będzie używać, zostanie udostępniony odpowiednio.

4

Jeśli masz jakiekolwiek wątpliwości co do sposobu wykorzystania pamięci podręcznej między pulami, wykonaj prosty test.

Technika jest dość prosta. Tworzenie FPM-2 baseny na różnych www-dir słuchania na przykład 8081 i 8082 oraz 2 porty pliki index.php i check.php o identycznej treści:

<?php 
echo "<pre>\n"; 
var_dump(opcache_get_status()); 

pierwsze ponowne uruchomienie usługi PHP-FPM, następnie uruchom pierwszą pulę localhost:8081/index.php, a następnie localhost:8082/check.php. Po tym sprawdzić dział w sekcji wyjściowej. Mam następujące wyniki:

localhost: 8081/index.php

["scripts"]=> 
    array(1) { 
    ["/usr/share/nginx/html/index.php"]=> 
    array(6) { 
     ["full_path"]=> 
     string(31) "/usr/share/nginx/html/index.php" 
     ["hits"]=> 
     int(0) 
     ["memory_consumption"]=> 
     int(1032) 
     ["last_used"]=> 
     string(24) "Mon Dec 23 23:38:35 2013" 
     ["last_used_timestamp"]=> 
     int(1387827515) 
     ["timestamp"]=> 
     int(1387825100) 
    } 
    } 

localhost: 8082/check.php

["scripts"]=> 
    array(2) { 
    ["/usr/share/nginx/html1/check.php"]=> 
    array(6) { 
     ["full_path"]=> 
     string(32) "/usr/share/nginx/html1/check.php" 
     ["hits"]=> 
     int(0) 
     ["memory_consumption"]=> 
     int(1056) 
     ["last_used"]=> 
     string(24) "Mon Dec 23 23:38:47 2013" 
     ["last_used_timestamp"]=> 
     int(1387827527) 
     ["timestamp"]=> 
     int(1387825174) 
    } 
    ["/usr/share/nginx/html/index.php"]=> 
    array(6) { 
     ["full_path"]=> 
     string(31) "/usr/share/nginx/html/index.php" 
     ["hits"]=> 
     int(0) 
     ["memory_consumption"]=> 
     int(1032) 
     ["last_used"]=> 
     string(24) "Mon Dec 23 23:38:35 2013" 
     ["last_used_timestamp"]=> 
     int(1387827515) 
     ["timestamp"]=> 
     int(1387825100) 
    } 
    } 

Jak widać drugi basen ma już index.php w pamięci podręcznej, więc odpowiedź jest wszystkie 4 baseny podzielą się 128 MB pamięci podręcznej.

Powiązane problemy