저는 PHP APC 캐싱 시스템에 너무 실망해서 서버에서 완전히 제거/비활성화하고 싶었습니다. Debian Squeeze에 Nginx가 설치된 PHP를 사용하고 있는데, 이를 수행할 수 있는 방법이 있습니까?
답변1
APC를 제거하는 대신엄청난성능이 히트하고 효과적으로 발에 총을 쏘았습니다 ..
이것을 시도해 보십시오: /etc/php5/conf.d/apc.ini에서:
extension=apc.so
apc.shm_size=128M
apc.shm_segments=1
apc.max_file_size=5M
apc.num_files_hint=10000
apc.slam_defense = 0
apc.write_lock=1
apc.shm_size
여유 RAM이 충분하다면 128보다 큰 값, 즉 512로 늘릴 수 있습니다 .
내가 운영하는 서버에서 이 작업을 수행했지만 한 번도 본 적이 없습니다.풀에 메모리를 할당할 수 없습니다.오류.
답변2
./opt/php5/etc/conf.d/apc.ini
;
나중에 웹서버를 다시 시작하는 것을 잊지 마세요.
또한 주석 처리하려면 'extension=apc.so'에 대한 '/etc//php5/apache2/php.ini'를 확인하세요.
아직 소스가 남아 있다면 나중에 시도해 볼 수도 있습니다 make uninstall
. makefile에 이 대상이 포함되어 있는지 모르겠습니다.
답변3
Squeeze가 제공하는 것 외에 다른 것을 설치하지 않았다면 간단한 방법으로 설치 apt-get remove php-apc
하면 됩니다.
답변4
해결책은 APC에 할당된 메모리를 늘리는 것입니다.
TTL 0을 사용한다는 것은 APC가 메모리가 부족할 때 모든 캐시를 플러시한다는 의미입니다. 오류는 더 이상 나타나지 않지만 이로 인해 APC의 효율성이 훨씬 떨어집니다. "나는 내 일을 하고 싶지 않다"는 결정은 위험도 문제도 없습니다. APC는 그런 식으로 사용되지 않습니다. 가장 많이 액세스하는 페이지가 만료되지 않도록 충분히 높은 TTL을 선택해야 합니다. 가장 좋은 방법은 APC가 캐시를 플러시할 필요가 없도록 충분한 메모리를 제공하는 것입니다.
ttl이 어떻게 사용되는지 이해하려면 매뉴얼을 읽어보세요:http://www.php.net/manual/en/apc.configuration.php#ini.apc.ttl
apc.shm_size를 늘려 할당된 메모리를 늘릴 수 있습니다.
APC가 공유 세그먼트 메모리를 사용하도록 컴파일된 경우 운영 체제에 따라 제한됩니다. 각 세그먼트에 대한 시스템 제한을 보려면 다음 명령을 입력하십시오.
sysctl -a | grep -E "shmall|shmmax"
더 많은 메모리를 할당하려면 apc.shm_segments 매개변수를 사용하여 세그먼트 수를 늘려야 합니다.
APC가 mmap 메모리를 사용하는 경우 제한이 없습니다. 메모리 양은 여전히 동일한 옵션 apc.shm_size로 정의됩니다.
서버에 메모리가 충분하지 않으면 필터 옵션을 사용하여 자주 액세스하지 않는 PHP 파일이 캐시되는 것을 방지하세요.
그러나 TTL을 0으로 사용하지 마십시오.
apc.php를 사용하여 구성을 확인하세요. 실제로 무엇이 할당되고 어떻게 사용되는지 확인할 수 있습니다. 그래프는 몇 시간 후에도 안정적으로 유지되어야 합니다. 새로 고칠 때마다 그래프가 완전히 변경된다면 이는 설정이 잘못되었음을 의미합니다(APC가 모든 것을 플러시합니다). APC가 실제로 보안 마진으로 사용하는 것보다 20%를 할당하고 정기적으로 확인하십시오.
32MB만 허용하는 기본값은 터무니없이 낮습니다. PHP는 서버가 64MB이고 대부분의 스크립트가 페이지당 하나의 PHP 파일을 사용했을 때 설계되었습니다. 요즘 Magento와 같은 솔루션에는 10,000개 이상의 파일(APC에서는 ~60Mb)이 필요합니다. 대부분의 PHP 파일이 항상 캐시되도록 충분한 메모리를 허용해야 합니다. 이는 낭비가 아니며 해당 원시 PHP를 파일 캐시에 두는 것보다 RAM에 opcode를 유지하는 것이 더 효율적입니다. 요즘에는 최저 150달러에 24Gb 메모리를 갖춘 전용 서버를 찾을 수 있으므로 주저하지 말고 APC에 몇 GB를 허용하십시오. 저는 5개의 Magento 매장과 ~40개의 WordPress 웹사이트를 호스팅하는 서버에 24GB 중 2GB를 넣었고, APC는 1.2GB를 사용합니다. Magento 설치의 경우 64MB, 일부 플러그인이 있는 Wordpress의 경우 20MB입니다.