2013-12-13 13 views
5

Let sagen, dass ich die PHP 5.5 Opcode Cache benutze und setzenHat jeder php-fpm Pool seinen eigenen Speicherpool?

opcache.memory_consumption=128

, wenn ich 4 Pools in php-fpm haben, wird jeder der vier Pool Aktie 128 MB Cache, oder wird sie besitzen 128M Opcache für jeden Pool?

Antwort

0

Als OpCache im Wesentlichen die gleiche Weise funktioniert wie APC hat (durch vorkompilierte Skript Bytecode in Shared Memory Speicherung), und es ist confirmed dass APC Opcode Cache zwischen php-fpm Pools gemeinsam genutzt wird, wenn sie von demselben Master gestartet sind Prozess werden 128 MB zwischen 4 Pools geteilt.

1

Als durch link durch raina77ow erwähnt, dass 128 MB betweeen 4 Pools geteilt werden wird, dass

Hinzufügen, in offiziellen Dokumenten wie erwähnt

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

opcache.memory_consumption Sätze Das Speicherlimit, das verwendet wird, egal wie viele Pools Sie verwenden, wird entsprechend geteilt.

4

Wenn Sie Zweifel haben, wie Cache-Speicher zwischen Pools einen einfachen Test verwendet.

Die Technik ist ziemlich einfach. Erstellen 2 fpm-Pools auf verschiedenen www-dir Hören zum Beispiel 8081 und 8082 Ports und 2 Dateien index.php und check.php mit identischem Inhalt:

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

Zunächst starten Sie den PHP-FPM-Service, dann führe den ersten Pool localhost:8081/index.php, dann localhost:8082/check.php aus. Nach dieser Überprüfung ["scripts"] Abschnitt in der Ausgabe. Ich habe weitere Resultate bekommt:

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) 
    } 
    } 

Wie Sie zweiten Pool sehen bereits index.php im Cache, so ist die Antwort alle 4 Pools teilen 128 MB Cache.

Verwandte Themen