2014-12-04 1 views
3

나는 그 설정을 이해 :젠드 OPcache 성능 설정만큼

opcache.validate_timestamps=0 
opcache.interned_strings_buffer=16 
opcache.max_accelerated_files=3907 
opcache.blacklist_filename=/blacklisted_files 

성능을 향상해야한다 (링크에 따르면 : 1, 23을). 나는 실제로 마지막 2와 내 경우에 "internet_strings_buffer"설정 값 "4"가 채워지지 않을 수 있으므로 (따라서 더 나은 결과를 제공하지는 못하지만) "validate_timestamps"는 stat() 함수 오버 헤드를 제거해야하므로 더 나은 결과를 제공해야합니다. 성능은 좋지만 JMeter를 사용한 테스트 결과에 따르면이를 검증 할 수는 없습니다. 각 설정은 별도로 기본 설정보다 나쁩니다.

"성능 설정"이 많이 향상되지 않을 수도 있지만, 성능이 떨어지지 않아야한다고 생각합니다 (차이는 각 요청에 대해 약 2ms입니다).

질문 : 기본 설정이 성능/권장 설정보다 나은 이유는 무엇입니까?

또한 OPcache는 더 큰 메모리 덮어 쓰기/제거/검색을 처리하는 것보다 낫습니다 ("opcache.memory_consumption"설정에 대해 말하기)?

답변

4

옵션 2와 3은 opcode 캐시의 용량과 관련된 점에서 간접적 인 성능 밖에 없습니다. 현재 사용량이 기본값에 맞으면 Opcache를 사용하는 시스템 오버 헤드가 약간 증가한 것 외에 다른 중요한 차이는 보이지 않습니다. 물론 현재 사용량이 인 경우이 적합하지 않은 경우 캐시가 더 큰 용량을 가지므로 캐시 미스가 적어 지므로 이점을 얻을 수 있습니다.

옵션 4는 휘발성이므로 캐시해서는 안되는 PHP 스크립트 파일 이름에 대한 패턴을 정의하는 것과 관련이 있습니다. 타임 스탬프 유효성 검사를 비활성화 한 경우 Opcache에서 변경 사항을 선택할 수 없으므로 특히 중요합니다.

옵션 1은 PHP 프로세스의 strace이 확인할 수있는 여분의 stat() 호출을 제거합니다. 최신 CPU의 경우 Linux 커널은 inode를 매우 효율적으로 캐시하므로이 노드는 VFAT 캐시에 인 경우 하위 mSec 만 저장합니다. 이 차이를 측정하려면 타이밍 테스트를 잘 구성해야합니다.

Opcache는 재사용 전략이 매우 좋지 않아 번거롭지 않습니다. 캐시가 천천히 채워지며 가득 차면 캐시가 전체적으로 플러시되고 처음부터 다시 작성됩니다.

+0

안녕 TerryE는 나는 대답을 주셔서 감사합니다 그리고 하나 개 더 질문이 있습니다 : 당신은 타임 스탬프 유효성 검사가 비활성화 된 경우 그 옵션 4가 중요 상태, 아직 옵션 1에 해당 합계를 (말) 경우 제거되지 않습니다 호출 시간 소인 유효성 검증은 FALSE로 설정됩니다. 그러면 "opcache.validate_timestamps"의 실제 요점은 무엇입니까? –

+1

필자는 그 반대라고 말했다.'validate_timestamps'를 = 0 매개 변수로 설정하면'stats' _이 실행되지 않습니다. 소스 저장소의 Opcache [README 파일] (https://github.com/php/php-src/blob/master/ext/opcache/README)를 참조하십시오. – TerryE

+0

정보를 제공해 주셔서 감사합니다. 답변을 빨리받지 못해 죄송합니다. –