2014-05-19 22 views
18

Simge stili dağıtımdan sonra PHP opcache'yi sıfırlamaya çalışıyorum. Buna rağmenPHP opcache sıfırlama + simetri stili dağıtım

<?php 
clearstatcache(true); 
opcache_reset(); 

, eski dosyalar halen kullanılmaktadır: Belge root Sembolik bağ değişiminden sonra wget tarafından yürütülüyor Projemdeki opcache_reset.php dosyası yok. opcache_get_status() çıktısına göre manual_restarts sayısı artar, last_restart_time güncel kalır, ancak dosya yolları güncelliğini yitirir. Bir şeyleri doğru yapmak için dağıtıldıktan sonra bir dakika sonra opcache_reset.php'u aramam gerekiyor.

PHP sürümü 5.5.6, ZendOpcache 7.0.3 devindir. Opcache yapılandırma:

opcache.blacklist_filename => no value 
opcache.consistency_checks => 0 
opcache.dups_fix => Off 
opcache.enable => On 
opcache.enable_cli => On 
opcache.enable_file_override => Off 
opcache.error_log => no value 
opcache.fast_shutdown => 1 
opcache.force_restart_timeout => 180 
opcache.inherited_hack => On 
opcache.interned_strings_buffer => 8 
opcache.load_comments => 1 
opcache.log_verbosity_level => 1 
opcache.max_accelerated_files => 4000 
opcache.max_file_size => 0 
opcache.max_wasted_percentage => 5 
opcache.memory_consumption => 128 
opcache.optimization_level => 0xFFFFFFFF 
opcache.preferred_memory_model => no value 
opcache.protect_memory => 0 
opcache.restrict_api => no value 
opcache.revalidate_freq => 60 
opcache.revalidate_path => Off 
opcache.save_comments => 1 
opcache.use_cwd => On 
opcache.validate_timestamps => On 

cevap

37

nedenleri ve ZendOptimizerPlus issue açıklanan iki olası çözümler. Biz nginx config $realpath_root kullanarak münhal:

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 
fastcgi_param DOCUMENT_ROOT $realpath_root; 
+1

Aynı nginx direktiflerini kullanıyorum. Ancak php fpm'nin yeni dizinden kodu kullandığını doğrulamak için php fpm'yi yeniden yüklemem gerekiyor. Fpm yeniden yükleme bazı istekleri olsa da beni kaybettiriyor. Eğer fpm'yi yeniden yüklemediğimde, hala eski dizinde kod yürütür. Burada açıklanan aynı sorun: http://serverfault.com/questions/630573/atomic-deployments-with-nginx-and-php-fpm Yardımcı olabilir misiniz? –

0

Ayrıca nihayet bir çözüm yapmak o sorunu karşılaştı.

$ curl -sO http://gordalina.github.io/cachetool/downloads/cachetool.phar 
$ chmod +x cachetool.phar 

(/var/run/php5-fpm.sock bir dosya veya 127.0.0.1:9000 ise) bir otomatik tahmin fastcgi sunucusuna bağlanabilir

apc 
    apc:bin:dump    Get a binary dump of files and user variables 
    apc:bin:load    Load a binary dump into the APC file and user variables 
    apc:cache:clear   Clears APC cache (user, system or all) 
    apc:cache:info   Shows APC user & system cache information 
    apc:cache:info:file  Shows APC file cache information 
    apc:key:delete   Deletes an APC key 
    apc:key:exists   Checks if an APC key exists 
    apc:key:fetch   Shows the content of an APC key 
    apc:key:store   Store an APC key with given value 
    apc:sma:info    Show APC shared memory allocation information 
opcache 
    opcache:configuration Get configuration information about the cache 
    opcache:reset   Resets the contents of the opcode cache 
    opcache:status   Show summary information about the opcode cache 
    opcache:status:scripts Show scripts in the opcode cache 

Örnek:

[[email protected] ~]# php cachetool.phar opcache:status 
+----------------------+---------------------------------+ 
| Name     | Value       | 
+----------------------+---------------------------------+ 
| Enabled    | Yes        | 
| Cache full   | No        | 
| Restart pending  | No        | 
| Restart in progress | No        | 
| Memory used   | 42.71 MiB      | 
| Memory free   | 85.29 MiB      | 
| Memory wasted (%) | 0 b (0%)      | 
| Strings buffer size | 8 MiB       | 
| Strings memory used | 5.31 MiB      | 
| Strings memory free | 2.69 MiB      | 
| Number of strings | 103847       | 
+----------------------+---------------------------------+ 
| Cached scripts  | 1261       | 
| Cached keys   | 2748       | 
| Max cached keys  | 7963       | 
| Start time   | Thu, 08 Feb 2018 02:28:56 +0000 | 
| Last restart time | Thu, 08 Feb 2018 03:10:19 +0000 | 
| Oom restarts   | 0        | 
| Hash restarts  | 0        | 
| Manual restarts  | 1        | 
| Hits     | 47839       | 
| Misses    | 1269       | 
| Blacklist misses (%) | 0 (0%)       | 
| Opcache hit rate  | 97.415899649752     | 
+----------------------+---------------------------------+ 
[[email protected] ~]# 
[[email protected] ~]# 
[[email protected] ~]# php cachetool.phar opcache:reset 
[[email protected] ~]# 
[[email protected] ~]# 
[[email protected] ~]# php cachetool.phar opcache:status 
+----------------------+---------------------------------+ 
| Name     | Value       | 
+----------------------+---------------------------------+ 
| Enabled    | Yes        | 
| Cache full   | No        | 
| Restart pending  | No        | 
| Restart in progress | No        | 
| Memory used   | 10.43 MiB      | 
| Memory free   | 117.57 MiB      | 
| Memory wasted (%) | 0 b (0%)      | 
| Strings buffer size | 8 MiB       | 
| Strings memory used | 545.69 KiB      | 
| Strings memory free | 7.47 MiB      | 
| Number of strings | 103847       | 
+----------------------+---------------------------------+ 
| Cached scripts  | 0        | 
| Cached keys   | 0        | 
| Max cached keys  | 7963       | 
| Start time   | Thu, 08 Feb 2018 02:28:56 +0000 | 
| Last restart time | Thu, 08 Feb 2018 03:19:00 +0000 | 
| Oom restarts   | 0        | 
| Hash restarts  | 0        | 
| Manual restarts  | 2        | 
| Hits     | 0        | 
| Misses    | 2        | 
| Blacklist misses (%) | 0 (0%)       | 
| Opcache hit rate  | 0        | 
+----------------------+---------------------------------+ 

Belleğin, önbellek anahtarlarının herşeyi vurduğunu görebilirsiniz. Bu çok kullanışlı. Ben de kolayca Ansible ile entrikacı. apcu ve diğerleri maddeleri için

Onun uygulama: Check fazlası var http://gordalina.github.io/cachetool/