Zend OPcache 개념과 설치 및 설정

공정위 광고 문구 Ver 3.1
공정위 광고 문구 Ver 3.2(모바일 전용)

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

  • |

    컴파일 뜻 : 컴파일링이란?

    ■ 컴파일이란? 컴파일(compile)이란 프로그래머가 작성한 소스코드를 바이너리 파일로 변환하는 과정이다. 소스코드를 Compiler 하여 프로그램을 만들 수 있다. 요즘은 배포판 공급업체에서 이미 compile 된 바이너리 파일들을 저장소에 관리하는 것이 일반적인 사항이 되었으며, 서버로 다운로드 후 바로 사용할 수 있다. Ⅰ. 컴파일링과 링킹 compile 과정을 컴파일링(compiling)이라고 하며, 소스코드(사람일 읽을 수 있는 형태의 프로그램)를 컴퓨터 프로세서의…

  • Rocky Linux 설치 (9.5 Ver Minimal) | 이더넷 설정

    VirtualBox로 Rocky Linux 설치(9.5 Ver)를 진행해 보겠습니다. Rocky Linux 설치를 위해 ISO 파일을 다운로드 받은 후 가상 머신을 생성합니다. EFI 활성화를 체크 후 설치 진행을 하겠습니다. ✅ Rocky Linux 설치 Rocky Linux 설치 시작 화면에서 install을 진행합니다. Rocky Linux 설치 시작 후 운영체제가 정상 동작하기 위한 OS부팅 절차가 시작됩니다. 1. 언어 선택 2….

  • [Linux] 리눅스 mv 명령어 사용법 및 mv 명령어 옵션

    리눅스 mv 명령어는 Move의 약자로 파일 또는 디렉토리를 이동하거나 이름을 변경할 때 사용하는 명령어입니다. 기본적인 리눅스 mv 명령어 사용법과 옵션 및 활용 방법에 대해 알아 보겠습니다. ✅ 리눅스 mv 명령어 기본 옵션 mv 명령어의 기본 사용 방법입니다. ✅ mv 명령어 옵션 ✅ mv 명령어 활용하기 1. 여러 파일을 한번에 이동 시키기 2. 명령어로…

  • 리눅스 커널 버전 확인 명령어 및 배포판 버전 확인 방법

    리눅스를 운영할 때 리눅스 커널 버전 확인과 배포판 버전을 확인해야 하는 경우가 있습니다. ✅ 리눅스 커널 버전 확인 명령어 리눅스에서 커널 버전을 확인하는 명령어는 uname 명령어를 사용해서 확인할 수 있습니다. 1. uname 명령어 uname -a는 모든 결과를 보여 줍니다. 2. /proc/version 에서 확인 3. hostnamectl ✅ 리눅스 배포판 버전 확인 리눅스의 배포판 버전을…

  • 리눅스 blkid 명령어 | UUID와 GUID 차이

    리눅스 blkid 명령어는 블록 디바이스의 파일 시스템 유형 or 속성을 출력하는 명령어입니다. 주 목적은 리눅스 서버를 다시 시작하는 경우 /etc/fstab 파일에 자동 마운트 정보를 설정할 때 UUID를 확인하기 위해 사용되는 명령어입니다. ✅ blkid 명령어 사용 예시 명령어만 입력했을 경우 전체 파티션의 UUID를 확인할 수 있습니다. ✅ UUID와 GUID 차이 리눅스에서 파티션 작업에 대해…

  • RAID 구성 | RAID Level 0, 1, 4, 5, 6, 1+0, 0+1

    RAID(Redundant Array of Independent Disks 또는 Redundant Array of Inexpensive Disks)는 뜻 하는 내용처럼 여러 개의 디스크를 스토리지 하나처럼 운영하여 스토리지의 안정성을 확보하는 기술입니다. 저렴한(Independent) 디스크의 복수 배열의 뜻에서 독립적인 디스크의 복수 배열이란 뜻으로 많이 사용되고 있습니다. 이유는 단독으로 사용하기에 부족한 성능을 가진 디스크를 하나의 논리 디스크로 정렬해서 재활용하는데 목적이 있었기 때문입니다. 디스크…

답글 남기기

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

Prove your humanity: 7   +   9   =