• Resolved Scott Farrell

    (@sfarrell5123)


    Just trying to get your thoughts on how memory is managed.

    I have zend installed , and from looking at your ‘opcache usage’ it matches to my zend settings. So I’m confident it’s using zend opcache.

    default zend settings – other than
    opcache.memory_consumption=256

    I’m use php-fpm from whm.

    Each site is launched from a different user, each with say 8 php-fpm workers.

    eg.
    https://www.mysite.com – user:mysite, 8 fpm workers
    https://www.myshop.com – user:myshoop , 8 fpm workers.

    So my guess is:
    – it’s using mmap – 256Mb
    – linux stops each user account from seeing the shared memory of other users – regardless of cache salt
    – 1 chunk of mmap per user(aka site) using mmap of 256mb
    – but each of the php-fpm workers can access the shared 256mb
    – so say 8 sites, each with 8 workers, it’s 2gb of RAM (8x256mb).

    ; Enable Zend OPcache extension module
    zend_extension=opcache.so
    
    ; Determines if Zend OPCache is enabled
    opcache.enable=1
    
    ; Determines if Zend OPCache is enabled for the CLI version of PHP
    ;opcache.enable_cli=0
    
    ; The OPcache shared memory storage size.
    opcache.memory_consumption=256
    
    ; The amount of memory for interned strings in Mbytes.
    opcache.interned_strings_buffer=8
    
    ; The maximum number of keys (scripts) in the OPcache hash table.
    ; Only numbers between 200 and 100000 are allowed.
    opcache.max_accelerated_files=4000
    
    ; The maximum percentage of "wasted" memory until a restart is scheduled.
    ;opcache.max_wasted_percentage=5
    
    ; When this directive is enabled, the OPcache appends the current working
    ; directory to the script key, thus eliminating possible collisions between
    ; files with the same name (basename). Disabling the directive improves
    ; performance, but may break existing applications.
    ;opcache.use_cwd=1
    
    ; When disabled, you must reset the OPcache manually or restart the
    ; webserver for changes to the filesystem to take effect.
    ;opcache.validate_timestamps=1
    
    ; How often (in seconds) to check file timestamps for changes to the shared
    ; memory storage allocation. ("1" means validate once per second, but only
    ; once per request. "0" means always validate)
    ;opcache.revalidate_freq=2
    
    ; Enables or disables file search in include_path optimization
    ;opcache.revalidate_path=0
    
    ; If disabled, all PHPDoc comments are dropped from the code to reduce the
    ; size of the optimized code.
    ;opcache.save_comments=1
    
    ; If enabled, a fast shutdown sequence is used for the accelerated code
    ;opcache.fast_shutdown=0
    
    ; Allow file existence override (file_exists, etc.) performance feature.
    ;opcache.enable_file_override=0
    
    ; A bitmask, where each bit enables or disables the appropriate OPcache
    ; passes
    ;opcache.optimization_level=0xffffffff
    
    ;opcache.inherited_hack=1
    ;opcache.dups_fix=0
    
    ; The location of the OPcache blacklist file (wildcards allowed).
    ; Each OPcache blacklist file is a text file that holds the names of files
    ; that should not be accelerated.
    opcache.blacklist_filename=/opt/cpanel/ea-php74/root/etc/php.d/opcache*.blacklist
    
    ; Allows exclusion of large files from being cached. By default all files
    ; are cached.
    ;opcache.max_file_size=0
    
    ; Check the cache checksum each N requests.
    ; The default value of "0" means that the checks are disabled.
    ;opcache.consistency_checks=0
    
    ; How long to wait (in seconds) for a scheduled restart to begin if the cache
    ; is not being accessed.
    ;opcache.force_restart_timeout=180
    
    ; OPcache error_log file name. Empty string assumes "stderr".
    ;opcache.error_log=
    
    ; All OPcache errors go to the Web server log.
    ; By default, only fatal errors (level 0) or errors (level 1) are logged.
    ; You can also enable warnings (level 2), info messages (level 3) or
    ; debug messages (level 4).
    ;opcache.log_verbosity_level=1
    
    ; Preferred Shared Memory back-end. Leave empty and let the system decide.
    ;opcache.preferred_memory_model=
    
    ; Protect the shared memory from unexpected writing during script execution.
    ; Useful for internal debugging only.
    ;opcache.protect_memory=0
    
    ; Allows calling OPcache API functions only from PHP scripts which path is
    ; started from specified string. The default "" means no restriction
    ;opcache.restrict_api=
    
    ; Enables and sets the second level cache directory.
    ; It should improve performance when SHM memory is full, at server restart or
    ; SHM reset. The default "" disables file based caching.
    ; RPM note : file cache directory must be owned by process owner
    ;   for mod_php, see /etc/httpd/conf.d/php.conf
    ;   for php-fpm, see /etc/php-fpm.d/*conf
    opcache.file_cache=""
    
    ; Enables or disables opcode caching in shared memory.
    ;opcache.file_cache_only=0
    
    ; Enables or disables checksum validation when script loaded from file cache.
    ;opcache.file_cache_consistency_checks=1
    
    ; Enables or disables copying of PHP code (text segment) into HUGE PAGES.
    ; This should improve performance, but requires appropriate OS configuration.
    opcache.huge_code_pages=0
    
    ; Leads OPcache to check file readability on each access to cached file.
    ; This directive should be enabled in shared hosting environment, when few
    ; users (PHP-FPM pools) reuse the common OPcache shared memory.
    opcache.validate_permission=1
Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author Nawawi Jamili

    (@nawawijamili)

    Hi,

    I’m not an expert, but as far as I know, it is correct. You need to test it and normally need to fine-tune this configuration directive:

    opcache.max_accelerated_files
    opcache.max_wasted_percentage

    Thanks.

    Plugin Author Nawawi Jamili

    (@nawawijamili)

    Hi,

    I’m marking this thread as resolved. Feel free to open a new topic if you have further questions.

    Thanks.

Viewing 2 replies - 1 through 2 (of 2 total)
  • The topic ‘Memory management fpm/whm question’ is closed to new replies.