PHP 높 은 병발 문제 해결(opcache)
오늘 일 할 때 고객 의 서버 를 접 하 게 되 어 업무 논리 가 비교적 간단 하 다.pv 는 120 w 정도 로 추산 합 니 다.아 리 클 라 우 드 2c4g 서버 를 사용 합 니 다.아침부터 렉 이 걸 려 서 서버 에 로그 인 한 후 부하 가 890 까지 되 었 는 지 확인 했다.
나중에 어떻게 든 조정 해 봐.갑자기 어떤 선배 가 말 한 것 이 생각 났 다.opcache 를 켜 라.정말 빨 라 질 것 이다.
그래서 나 는 바로 정 리 를 시 작 했 고 과정 은 매우 간단 했다.
1.phop 에 들 어가 면 ini 는 opcache 를 검색 합 니 다.
2.대응 하 는 매개 변 수 를 수정 합 니 다(아래)
zend_extension=opcache.so # php7
[opcache]
;opcache
opcache.enable=1
;CLI ,PHP OPcache
opcache.enable_cli=1
;OPcache , MB
opcache.memory_consumption=128
;PHP (string interning) 。 , 1000 “foobar”, PHP , 999 。 ―― php-fpm , , php-fpm 。 , , 。
(megabytes) , 16, 16MB, 4MB
opcache.interned_strings_buffer=8
; PHP 。 , PHP 。
200, PHP 5.5.6 100000,PHP 5.5.6 1000000。 200 1000000 。
opcache.max_accelerated_files=10000
; ( ), 0
opcache.revalidate_freq=60
; “ ”。 , PHP PHP , 。 1 。
opcache.fast_shutdown=1
; ( 1),OPcache opcache.revalidate_freq (timestamp) 。
( 0),opcache.revalidate_freq ,PHP 。 , , ,
0, , PHP web 。
opcache.validate_timestamps=0
; Opcache File Cache( ), , Opcache opcode , , .
PHP /tmp Cache Opcode , PHP .
opcache.file_cache=/tmp
4.php 서버 를 다시 시작 합 니 다(설정 에 문제 가 있 으 면 오류 보고 후 다시 시작 합 니 다)5.확장 이 opcache 가 있 는 지,phopinfo()에서 볼 수 있 는 지 확인 합 니 다.
6.프로그램 에 해당 하 는 오류 가 있 는 지 확인 하고 열 면 일부 프로그램 에 영향 을 줄 수 있 습 니 다.(특히 주석 에 의존 하 는 프로그램 은 주석 을 삭제 하 는 것 이 잘못 될 수 있 습 니 다)
7.검증 효과 완료.
간단하게 말하자면 opcache 가 왜 php 의 효율 을 가속 화 시 켰 는 지php 는 해석 형 언어 로 실행 할 때마다 해석 기 를 통 해 번역 하여 바이트 코드 를 만들어 야 하 며 프로그램 이 정형 화 된 후에 기본적으로 변 하지 않 는 다.opcache 는 이 내용 을 메모리 에 캐 시 합 니 다.불필요 한 노동 을 반복 하 는 것 을 낮 추고 부담 을 줄 였 다.성능 대응 에 대해 서 는 내일 그림 을 올 리 겠 습 니 다.효과 가 여전히 뚜렷 하 다.서버 부터 만부 하 에서 70%정도.
더 자세 한 설정 설명 이 있 습 니 다.필요 한 것 이 있 으 면 보 셔 도 됩 니 다.
1 opcache.enable boolean
2 。 , 。 ini_set() opcache.enable , 。 。
3
4 opcache.enable_cli boolean
5 CLI PHP 。 。
6
7 opcache.memory_consumption integer
8 OPcache , 。
9
10 opcache.interned_strings_buffer integer
11 , 。 PHP 5.3.0 。
12
13 opcache.max_accelerated_files integer
14 OPcache 。 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 。 200, PHP 5.5.6 100000,PHP 5.5.6 1000000。
15
16 opcache.max_wasted_percentage integer
17 , 。 , OPcache 。
18
19 opcache.use_cwd boolean
20 ,OPcache , 。 , 。
21
22 opcache.validate_timestamps boolean
23 , OPcache opcache.revalidate_freq 。 , opcache_reset() opcache_invalidate() OPcache, Web 。
24
25 opcache.revalidate_freq integer
26 , 。 0 , OPcache 。
27 opcache.validate_timestamps , 。
28
29 opcache.revalidate_path boolean
30 , include_path 。 , 。
31
32 opcache.save_comments boolean
33 , , 。 , : Doctrine, Zend Framework 2 PHPUnit。
34
35 opcache.load_comments boolean
36 , , 。 opcache.save_comments , 。
37
38 opcache.fast_shutdown boolean
39 , 。 Zend , 。
40
41 opcache.enable_file_override boolean
42 , file_exists(), is_file() is_readable() , , 。 PHP , 。 opcache.validate_timestamps , 。
43
44 opcache.optimization_level integer
45 。
46
47 opcache.inherited_hack boolean
48 PHP 5.3 ,OPcache DECLARE_CLASS 。 ,OPcache 。 DECLARE_CLASS , , 。
49 PHP 5.3 , 。
50
51 opcache.dups_fix boolean
52 “ ” 。
53
54 opcache.blacklist_filename string
55 OPcache 。 , , 。 , 。 (;) 。
56
57 :
58
59 ;
60 /var/www/broken.php
61 ; x
62 /var/www/x
63 ;
64 /var/www/*-broken.php
65
67 opcache.max_file_size integer
68 。 0 。
69
70 opcache.consistency_checks integer
71 0 ,OPcache N 。 N 。 , 。
72
73 opcache.force_restart_timeout integer
74 , 。 , OPcache , 。
75 opcache.log_verbosity_level 3 3 , 。
76
77 opcache.error_log string
78 OPcache 。 , stderr, ( Web )。
79
80 opcache.log_verbosity_level integer
81 OPcache 。 , (0) (1) 。 : (2), (3) (4)。
82
83 opcache.preferred_memory_model string
84 OPcache 。 ,OPcache , , 。
85 : mmap,shm, posix win32。
86
87 opcache.protect_memory boolean
88 , 。 。
89
90 opcache.mmap_base string
91 Windows 。 PHP 。 “ ” 。
92
93 opcache.restrict_api string
94 PHP OPcache API 。 "",
95
여기 서 PHP 의 높 은 병발 문제 해결(opcache)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 PHP 의 높 은 병발(opcache)내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.