본문 바로가기
2024.03.19 16:21
Opcache 설정 설명
조회 수 217 추천 수 0 댓글 0

단축키

Prev이전 문서

Next다음 문서

단축키

Prev이전 문서

Next다음 문서

; Zend Opacache 활성화 여부 결정

opcache.enable=1

; PHP CLI 버전에서 Zend Opcache 활성화 여부 결정

opcache.enable_cli=1

; Opcache 공유 메모리 저장소 사이즈

opcache.memory_consumption=128

; 메모리에서 interned 문자열을 위해 사용할 메모리량

opcache.interned_strings_buffer=8

; Opcache 해쉬 테이블에서 가질수 있는 키값의 최대값(200~100000 사이에 값만 가질 수 있음)

opcache.max_accelerated_files=4000

; 공유 메모리 저장소 할당을 위해서 변화된 것들에 대해 얼마나 자주 파일 타임 스탬프를 체크(초단위)할지 ( 0은 늘 검사)

opcache.revalidate_freq=60

; 활성화 시 accelerated code 에 대해서 사용되어짐

opcache.fast_shutdown=1

; 활성화 시 Opcache는 현재 작업디렉토리를 스크립트 키에 추가하고, 같은 이름을 가진 파일들 사이에 가능한 충돌을 제거한다.

; 비활성화 시 성능이 향상되지만, 존재하는 애플리케이션이 깨질 수 있음.

opcache.use_cwd=1

; 비활성화 시, Opcache 를 수동으로 리셋해주거나, 파일시스템이 변한것에 대해 효과를 얻기위해서는 웹서버를 재시작 해야함.

opcache.validate_timestamps=1

; 재시작이 스케줄 될때까지 "wasted" 최대 메모리 비율

opcache.max_wasted_percentage=5

출처: https://jlblog.me/100 [JLBlog]

==========================================

4.2. php.ini에서 OPcache 설정

php.ini 파일을 열어보면 OPcache 관련해 앞에 주석 처리된 명령문들이 많이 있습니다.

이 명령문 중에서 상호 관련이 있는 변수는 opcache.memory_consumption, pcache.max_accelerated_files, opcache.max_wasted_percentage의 3가지로 서로 충돌이 나지 않토록 설정하는 게 관건으로 보입니다.

opcache.memory_consumption은 기본값이 64MB로 되어 있는데요.

메모리의 여유가 있다면 늘려주는 게 좋을 것 같습니다. 원래 256MB를 설정했는데,

OPcache 모니터링 프로그램으로 며칠 살펴보니 70MB이하로 사용되고 있어서 96MB로 최종 설정했습니다.

opcache.max_accelerated_files은 한번에 처리하는 캐시 파일 수 인데요.

이는 200에서 1,000,000사이의 값을 넣게 되어 있고 기본값은 2000입니다.

램에 여우가 있다면 기본보다 높이는게 좋겠죠. 저는 100,000으로 설정했습니다만

실제로 1,300개 정도 사용되고 있는 것으로 보아 개인 사이트라면 10,000정도면 충분할 것 같습니다.

opcache.max_wasted_percentage는 Opcache가 재시작을 해야할 시 버려야하는 비율을 정하는 것입니다.

기본값은 5%로 되어 있습니다. 일반적으로 기본보다 더 높여주는 것 같습니다.

opcache.revalidate_freq는 php소스 변경 확인 간격을 말하는데요.

개발자라면 이를 0으로 놓아 바로 바로 확인토록 하고, 일반인이라면 60 또는 180으로 설정합니다.

그외 일반적으로 꼭 하는 설정들은 아래에 적어 보았습니다.

opcache.enable=1 ; Opcache 사용여부 설정, 1일때 활성화 됨

opcache.interned_strings_buffer=8

opcache.max_accelerated_files=100,000 ; 최대 파일갯수 설정

opcache.revalidate_freq=180 ; php 소스 변경확인시간 60sec

opcache.validate_timestamps=2 ; php 소스 수정 확인

opcache.fast_shutdown=1

opcache.enable_cli=0 ; 명령행 버전의 PHP에서도 opcache 적용할지 여부

opcache.use_cwd=1 ;같은 이름을 가진 파일들사이에서 가능한 충돌 제거

4.3. OPcache 모니터링

이렇게 OPcache를 설정했으면 이 OPcache가 어떻게 작동하고 있는지 모니터링하고 혹시 수정할게 있는지 확인하는 게 좋을 것 같습니다.

이 모니터링 프로그램은 PHP’s Zend Opcache Config & Web Viewer 에서

세가지 프로그램을 소개하고 있는데요.

저는 이중에서 Opcache-Status by Rasmus Lerdorf를 설치해 사용하고 있습니다.

cd /var/www/example.com/ # 설치하고 싶은 디렉토리로 이동

wget https://raw.github.com/rlerdorf/opcache-status/master/opcache.php

설치 후 인터넷 브라우저에서

설치주소/opcache.php 명령으로 모니터링 프로그램을 볼 수 있습니다.

아래 이미지가 모니터링 프로그램으로 확인한 내용입니다.

5. 마무리하면서

이상으로 간단히 OPcache에 대해서 살펴보았습니다.

단일 사이트에서 OPcache는 굉장히 효율적인 툴로 보입니다.

더우기 올해 PHP가 7.x에서 8.0으로 업그레이드가 되면 더욱 유용할 것으로 보입니다.

저는 Page Caching은 FastCGI를 적용하고, PHP Script Cache는 여기서 설명한 OPcache를 적용하며,

데이타베이스 관련해 Memcached를 적용해 사용하고 있습니다.

지금까지 성과는 나름 만족스럽습니다.

FastCGI나 Memcached에 대해서는 아래 포스팅을 참조하시기 바랍니다.

출처 : https://happist.com/549007/opcache%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%9C-%EC%9B%8C%EB%93%9C%ED%94%84%EB%A0%88%EC%8A%A4-%EC%86%8D%EB%8F%84-%EC%B5%9C%EC%A0%81%ED%99%94-%EB%B0%A9%EC%95%88/




List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 덕질 공통 이용규칙 및 안내 (업데이트중+ 2024-04-13) 😀컴덕824 2024.04.14 5130
공지 1000P를 모으면 다이소 상품권 1000원을 신청할 수 있습니다. file Private 2024.02.14 5117
52 히토미 https://misskey.io/ 특정 유저 주소는 다운 안되는 문제 😀익명804 2023.08.26 631
51 효율적인 웹 개발을 위한 10가지 Visual Studio Code 확장 file 😀익명863 2024.02.08 253
50 혼자 공부할 수 있는 프로그래밍 강의 링크 모음(국내) 😀익명400 2024.03.15 760
49 특정 문자 삭제 프로그램 (일본어,중국어,한국어,영어가 섞여있을때 편리함) file 😀익명475 2023.04.27 1560
48 취업하려는 공부는 적당히하자 😀익명331 2023.10.11 626
47 진짜 서버 만들었습니다 file 😀익명210 2024.03.09 544
46 제조사 맥 주소 확인 방법(How to check MAC address by manufacturer) 😀익명966 2023.08.31 400
45 이젠 병원에 UX개발 프로세스가 필요하다. file 😀익명100 2024.04.14 352
44 윈도우 파일 폴더 용량 관리 Tree size 😀익명487 2023.08.31 501
43 웹 개발에 매우 ​​유용한 10가지 Github 저장소 file 😀익명538 2024.02.08 261
42 스프링이 취업안될정도면 학벌이 ㅈ구린가봄 😀익명290 2023.10.11 620
41 서버 PHP용 다중 코어를 사용하는 방법 2 😀익명849 2023.11.06 228
40 메인보드 전원,리셋,LED,스피커 선 연결하는방법 😀익명469 2023.08.31 661
39 레드햇, RHEL 소스를 CentOS Stream에만 제공 file 😀익명436 2023.06.24 165
38 레노버 CMOS setup 진입방법 file 😀익명372 2023.05.13 492
37 도메인 사이트주소 접속이 안될때 DNS 캐시 플러시 하는방법 (웹개발자가 봐야하는) file 😀익명174 2023.11.19 54
36 도메인 IP DNS 전파 속도를 높이는 방법 😀익명003 2023.11.19 73
35 도메인 DNS 전파 확인 사이트 😀익명572 2023.11.19 27
34 대기 시간을 줄이기 위해 TCP를 통한 TLS 최적화 file 😀익명515 2023.10.27 1323
33 노트북 모니터 시간지나면 ubuntu 화면 자동으로 꺼지기 😀익명751 2023.08.30 313
목록
Board Pagination Prev 1 2 3 Next
/ 3