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

  • 리눅스 디렉토리 구조 및 파일 종류🔝

    리눅스 운영체제는 계층적 파일 시스템을 사용합니다. 위에서 아래 또는 위와 아래로 구성되어 있습니다. 리눅스 디렉토리 구조는 파일 시스템의 시작 지점인 루트 디렉토리(/)부터 시작됩니다. Linux 파일 시스템 계층 구조는 리눅스를 포함한 유닉스 유형 운영 체제의 디렉토리 구조와 내용을 결정하는 일련의 지침인 파일 시스템 계층 구조 표준의 적용을 받습니다. 계층 구조 표준은 리눅스 재단(영어: Linux Foundation)에서…

  • SSL 보안인증서 설치(CentOS 7)

    SSL 보안인증서는 한국·해외 웹사이트에서 필수 요소 중 하나입니다. SSL 보안인증서 설치 후 운영이 필요한 이유는 광고가 아닌 유기적 트래픽을 원할 경우 SSL(TLS) 인증서는 검색엔진최적화(SEO)에 필수 항목 중 하나이기 때문입니다. SSL 보안인증서는 사용자와 서버의 통신이 암호화되어 중간에 해커가 데이터를 가로채지 못하도록 하는 방화벽입니다. SSL 보안인증서 설치 방법 위 두 항목이 웹서버에 설치되어 있다면 개인키를…

  • /tmp 디렉토리 보안 설정 [CentOS 7]

    리눅스 웹 서버를 운영할 때, /tmp 디렉토리는 시스템과 여러 애플리케이션이 임시 파일을 저장하는 공간으로 자주 사용됩니다. 하지만 /tmp 디렉토리는 누구나 쓰기 가능한 특성을 가지고 있어, 적절한 보안 설정 없이 방치하면 악성 스크립트 실행과 같은 보안에 위험이 될 수 있습니다. ✅ /tmp 디렉토리 보안 설정 항목 ext4 또는 xfs로 /tmp 파티션 생성 시 고급…

  • 셔뱅(Shebang) [#! /bin/bash]

    shebang (셔뱅 또는 해시뱅)은 스크립트 파일의 첫 줄에 쓰이는 #!(해시 기호 + 느낌표)로 시작하는 구문입니다. 이 줄은 해당 스크립트를 어떤 인터프리터로 실행 할지를 지정합니다. 인터프리터(interpreter)는 프로그래밍 언어로 작성된 코드를 한 줄씩 읽고 즉시 실행하는 프로그램입니다. 이는 “작성된 명령을 번역해서 곧바로 실행해주는 번역기”라고 볼 수 있습니다. 보통 ASCII 텍스트 파일로 작성된 셸 스크립트에서 해시…

  • 리눅스 cat 명령어

    리눅스에서 텍스트 파일을 출력하는 간단한 ‘cat 명령어’는 명령어 뒤에 파일명을 적어 표준 출력(Standard Output)을 할 수 있습니다. cat은 “연결시키다”, “연관시키다” 등의 뜻을 가지고 있는 영어단어 “concatenate”에서 유래되었습니다. 1. cat 명령어 특징 출력과 비슷한 의미의 단어가 아닌 “concatenate“라는 단어에서 유래된 이유는 “|” pipe 명령어나 “>” redirection 명령어 등과 함께 사용하는 경우가 많기 때문입니다. 결국…

  • WAS와 WEB 서버 차이

    웹서버는 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에 요청을 하면 요청을 받아 정적 콘텐츠를 제공하는 서버입니다. 정적 콘텐츠는 HTML, CSS, 이미지, 파일 등의 콘텐츠가 제공됩니다. WAS란 DB 조회 또는 다양한 로직의 처리가 요구되는 동적 콘텐츠를 제공하기 위해 만들어진 Application 서버입니다. 웹서버란 무엇인가? WAS(Web Application Server)란? ※서블릿(Servlet) 서블릿(Servlet)은 자바로 작성된 웹 애플리케이션의 구성 요소 중 하나입니다….

답글 남기기

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

Prove your humanity: 4   +   1   =