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.