Zend OPcache 개념과 설치 및 설정

OPcache는 PHP script 를 바이트코드(bytecode)로 컴파일한 후에 공유 메모리에 저장하여 성능을 향상 시키는 모듈입니다. 서버의 성능을 향상시키는 PHP 가속기(PHP accelerators) 중 하나인 Zend Opcache 는 PHP 5.5부터 기본 모듈로 내장되었습니다.

✅ OPcache의 주요 기능

  • 바이트코드 캐싱: PHP 스크립트를 바이트코드로 컴파일한 후 캐시에 저장합니다. 이후 동일한 스크립트가 요청되면 캐시된 바이트코드를 재사용합니다.
  • 빠른 실행: 캐시된 바이트코드를 사용하여 PHP 코드의 실행 속도를 높입니다.
  • 메모리 사용 최적화: 공유 메모리를 사용하여 여러 요청 간에 캐시를 공유합니다.
  • 자동 메모리 관리: 오래된 또는 사용되지 않는 캐시 데이터를 자동으로 정리합니다.

✅ Zend OPcache 설치

  • Alma Linux 9.4
  • PHP 8.3.7

PHP 8.3을 이미 설치 해서 서버에 Zend OPcach가 이미 설치되어 있는 상태임을 확인했습니다.

PHP 8.3에 내장 확인미설치 된 경우 설치
~]# php -i | grep "Zend OPcache"
    with Zend OPcache v8.3.7, Copyright (c), by Zend Technologies
Zend OPcache
# php를 설치 후에 rpm 명령어로 PHP OPczche와 Zend OPcache가 같이 확인되는 경우 아래 명령어를 입력하면 하나의 OPczche만 나오는 것을 확인할 수 있음. 두 개의 이름에 하나의 OPczche가 설치된 것임.
~]# php -i | grep -i "opcache"
Additional .ini files parsed => /etc/php.d/10-opcache.ini,
    with Zend OPcache v8.3.7, Copyright (c), by Zend Technologies
Zend OPcache
--- 생략 ---
~#] dnf -y install php83-php-opcache.x86_64
# 다른 명령어 ▼ 
~#] dnf -y install php-opcache

✅ Zend OPcache 설정

🔲 php.ini 설정

/etc/php.d/10-opcache.ini에 이미 설정이 되어 있고 해당 파일에서 수정할 수 있지만 php.ini에 설정을 진행했습니다.

[opcache]
zend_extension=opcache.so
opcache.enable=1                       # 1로 활성화(0=비활성화)
opcache.memory_consumption=512         # 메모리 소비 설정 (단위: MB)
opcache.interned_strings_buffer=8      # interned 문자열에 사용할 메모리 크기 (단위: MB)
opcache.max_accelerated_files=30000    # 캐시할 최대 파일 수
opcache.revalidate_freq=60             # 파일 변경 확인 주기 (단위: 초)
opcache.validate_timestamps=1          # 파일 변경 시각 확인 (개발 환경에서는 1, 운영 환경에서는 0)
opcache.fast_shutdown=1    # 빠른 종료 기능 사용
opcache.enable_cli=1       # PHP의 CLI(Command-line interface) 버전에 Zend OPCache가 활성화되어 사용 할지 여부
opcache.preload=/home/www/opcache_preload.php   # 미리 로드할 스크립트 파일 경로

## root로 사전 로드를 활성화 할 땐 opcache.preload_user로 설정 / 워드프레스 웹사이트 플러그인 사용 시 opcache.preload 설정할 필요가 없음.
opcache.preload_user=root=/home/opcache_preload.php

🔲 opcache 설정 적용 및 확인

~]# systemctl restart php-fpm
~]# apachectl restart
~]# php -i | grep opcache  ## 설정 값 확인 ## 
opcache.blacklist_filename => no value => no value
opcache.dups_fix => Off => Off
opcache.enable => On => On
opcache.enable_cli => On => On
opcache.enable_file_override => Off => Off
opcache.error_log => no value => no value
opcache.file_cache => no value => no value
opcache.file_cache_consistency_checks => On => On
opcache.file_cache_only => Off => Off
opcache.file_update_protection => 2 => 2
opcache.force_restart_timeout => 180 => 180
opcache.huge_code_pages => Off => Off
opcache.interned_strings_buffer => 8 => 8
opcache.jit => tracing => tracing
opcache.jit_bisect_limit => 0 => 0
opcache.jit_blacklist_root_trace => 16 => 16
opcache.jit_blacklist_side_trace => 8 => 8
opcache.jit_buffer_size => 0 => 0
opcache.jit_debug => 0 => 0
opcache.jit_hot_func => 127 => 127
opcache.jit_hot_loop => 64 => 64
opcache.jit_hot_return => 8 => 8
opcache.jit_hot_side_exit => 8 => 8
opcache.jit_max_exit_counters => 8192 => 8192
opcache.jit_max_loop_unrolls => 8 => 8
opcache.jit_max_polymorphic_calls => 2 => 2
opcache.jit_max_recursive_calls => 2 => 2
opcache.jit_max_recursive_returns => 2 => 2
opcache.jit_max_root_traces => 1024 => 1024
opcache.jit_max_side_traces => 128 => 128
opcache.jit_max_trace_length => 1024 => 1024
opcache.jit_prof_threshold => 0.005 => 0.005
opcache.lockfile_path => /tmp => /tmp
opcache.log_verbosity_level => 1 => 1
opcache.max_accelerated_files => 30000 => 30000
opcache.max_file_size => 0 => 0
opcache.max_wasted_percentage => 5 => 5
opcache.memory_consumption => 512 => 512
opcache.opt_debug_level => 0 => 0
opcache.optimization_level => 0x7FFEBFFF => 0x7FFEBFFF
opcache.preferred_memory_model => no value => no value
opcache.preload => no value => no value
opcache.preload_user => no value => no value
opcache.protect_memory => Off => Off
opcache.record_warnings => Off => Off
opcache.restrict_api => no value => no value
opcache.revalidate_freq => 60 => 60
opcache.revalidate_path => Off => Off
opcache.save_comments => On => On
opcache.use_cwd => On => On
opcache.validate_permission => Off => Off
opcache.validate_root => Off => Off
opcache.validate_timestamps => On => On
웹 캐시(Web Cache)

Similar Posts

  • 리눅스와 유닉스 차이점 9가지

    리눅스를 사용하는 사람이라면 리눅스와 유닉스 차이는 무엇인지 궁금점이 한번 씩 생기게 됩니다. 간단하게 차이점을 요약하자면, 리눅스는 유닉스의 오픈 소스 구현체로, 유닉스와 유사한 운영 체제를 제공하면서도 커뮤니티 기반의 개방적인 환경을 가지고 있습니다. 둘 다 안정적이고 다목적으로 사용되는 운영 체제이지만, 유닉스는 상용 운영 체제의 역사적인 뿌리를 가지고 있고, 리눅스는 개방성과 다양성 측면에서 강점을 가지고 있습니다….

  • 리눅스 wget 명령어

    wget 명령어는 웹의 다운로드 링크를 리눅스 커멘드라인에서 실행해 다운로드를 할 수 있는 명령어입니다. HTTP, HTTPS, FTP 프로토콜을 이용해서 웹 서버에서 다운로드가 가능합니다. 목차✅ OPcache의 주요 기능✅ Zend OPcache 설치✅ Zend OPcache 설정🔲 php.ini 설정🔲 opcache 설정 적용 및 확인wget 설치하기 레드헷 계열에서 사용하는 패키지 매니저인 yum으로 wget 설치를 진행합니다. 기본 다운로드 명령입니다. wget…

  • 리눅스 cd 명령어

    cd 명령어는 “Change Directory”의 약자로, 현재 작업 디렉토리(현재 위치)를 다른 디렉토리로 이동할 때 사용하는 명령어입니다. 목차✅ OPcache의 주요 기능✅ Zend OPcache 설치✅ Zend OPcache 설정🔲 php.ini 설정🔲 opcache 설정 적용 및 확인✅ cd 명령어 기본 사용 방법 ✅ 사용 예시 cd 명령은 절대 경로(/부터 시작)를 기입해서 이동하는 방식과 상대 경로(. 및 ..)를 이용해서…

  • 리눅스 kill 명령어[kill -9 PID]

    리눅스 kill 명령어는 사용 중인 프로세스를 종료하는 명령어입니다. 터미널에서 프로세스에 시그널(Signal)을 보내서 프로세스를 종료합니다. 프로그램이 정지하거나 응답하지 않는 경우 일반적인 종료가 되지 않는 경우 등에 따라 명령어를 실행하게 됩니다. kill process는 사용 시 중요한 시스템 프로세스를 종료 시키면 시스템이 불안정해질 수 있기 때문에 주의해서 사용해야 합니다. 목차✅ OPcache의 주요 기능✅ Zend OPcache 설치✅…

  • df 명령어

    df(Disk Free)는 마운트 된 장치 전체 용량, 사용 용량, 여유 용량을 확인할 수 있습니다. 파일 시스템(Filesystem), 디스크 크기(Size), 사용량(Used), 여유공간(Avail), 사용률(Use%), 마운트지점(Mounted on)을 순서로 확인할 수 있습니다. 목차✅ OPcache의 주요 기능✅ Zend OPcache 설치✅ Zend OPcache 설정🔲 php.ini 설정🔲 opcache 설정 적용 및 확인df 명령어 옵션 웹사이트 접속이 안되는 오류 발생 시 디스크…

  • [Linux] userdel 명령어: 사용자 계정 삭제 명령어

    리눅스에서 useradd로 계정 생성 후 삭제가 필요한 경우 userdel 명령어를 사용합니다. 목차✅ OPcache의 주요 기능✅ Zend OPcache 설치✅ Zend OPcache 설정🔲 php.ini 설정🔲 opcache 설정 적용 및 확인✅ userdel 명령어 기본 사용은 아래와 같습니다. ✅ userdel 주로 사용하는 옵션 userlde만 입력해서 사용자를 삭제할 경우 보통 /home/[user]로 계정명이 폴더에 버전에 따라 남아있거나 삭제되는데 /var/spool/mail/[user]…

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 7   +   5   =