우수한 소프트웨어와 실용적인 튜토리얼
WordPress 확장을 위해 Memcached를 설치하세요. 웹사이트 접속 속도가 느리고 LCP 최적화 솔루션이 필요합니다.
Memcached 확장 프로그램 설치 지휘하다 LCP 최적화 LCP는 구글이 최근 몇 년 동안 출시한 웹사이트 평가 지표입니다. LCP(Largest Contentful Paint)의 가장 중요한 두 가지 지표는 LCP와 CLS입니다. LCP가 2초 이내로 최적화되면 웹사이트가 구글 검색에 노출될 가능성이 더 높아집니다.워드프레스인기 있는 것이 많이 있습니다캐시 플러그인캐시 플러그인을 설치할 수 있습니다. 캐시를 어떻게 최적화하든 초기 서버 응답 시간을 단축해야 합니다. LCP 최적화 전에 먼저 서버 캐시를 구성해야 합니다.
LCP에 대한 구체적인 참고 자료:가장 큰 콘텐츠 페인트 최적화
URL이 좋은 URL로 간주되지 않는 이유에 대한 예시입니다.
서버 측 캐싱 도구
캐싱(또는 콘텐츠 캐싱)은 데이터 사본을 임시 저장 위치(캐시라고도 함)에 저장하여 원본 저장소에서 데이터를 가져오는 것보다 쉽고 빠르게 액세스할 수 있도록 하는 널리 사용되는 기술입니다. 캐시의 유형과 용도에 따라 캐시에 저장되는 데이터에는 파일이나 파일 조각(예: HTML 파일, 스크립트, 이미지, 문서 등), 데이터베이스 작업 또는 레코드, API 호출, DNS 레코드 등이 포함될 수 있습니다.
Linux 서버용으로는 훌륭한 오픈소스 캐싱 도구가 많이 있습니다.멤캐시드그리고 Redis 등이 있습니다. 아래에서는 주로 Memcached의 사용법을 소개합니다.
멤캐시드
Memcached는 무료 오픈 소스 분산 메모리 객체 캐싱 시스템으로, 간단하면서도 강력한 기능을 제공합니다. 데이터베이스 호출, API 호출, 페이지 렌더링 결과와 같은 작은 데이터를 저장하는 메모리 내 키-값 저장소입니다. Unix 계열 운영 체제(Linux 및 OS X 포함)와 Microsoft Windows에서도 실행됩니다.
Memcached란 무엇인가요?
무료 오픈 소스, 고성능, 분산 메모리 객체 캐싱 시스템으로, 본질적으로 일반적인 용도이지만 데이터베이스 부하를 완화하여 동적 웹 애플리케이션의 속도를 높이도록 설계되었습니다.
Memcached는 데이터베이스 호출, API 호출 또는 페이지 렌더링 결과에서 발생하는 임의의 작은 데이터(문자열, 객체)를 저장하는 메모리 내 키-값 저장소입니다.
Memcached는 간단하면서도 강력합니다. 단순한 설계 덕분에 빠른 배포와 개발 편의성을 제공하며, 대용량 데이터 캐시에서 발생하는 여러 문제를 해결합니다. 대부분의 주요 언어에서 Memcached의 API를 사용할 수 있습니다.
Memcached 공식 웹사이트 :http://memcached.org
최신 안정 버전: memcached-1.6.18.tar.gz (2023-1-10)
Memcached 설치
Debian/Ubuntu: apt-get install libevent-dev Redhat/Centos: dnf install libevent-devel
소스코드 다운로드, 컴파일 및 설치
wget http://memcached.org/latest tar -zxvf memcached-1.6.18.tar.gz cd memcached-1.6.18 ./configure && make && make test && sudo make install
설치 후 시작해야 합니다.
# memcache가 설치되어 있는지 확인합니다 ls -al /usr/local/bin/mem* # memcache 서비스를 시작합니다 /usr/local/bin/memcached -d -m 200 -u www -p 11211 -c 256 -P /tmp/memcached.pid
Memcache 매개변수 설명:
- -d 옵션은 데몬 프로세스를 시작합니다.
- -m은 Memcache에 할당된 메모리 양(MB)입니다. 제 경우에는 10MB입니다.
- -u는 Memcache를 실행하는 사용자이고 여기서는 root입니다.
- -l은 수신 서버의 IP 주소입니다. 주소가 여러 개인 경우, 여기에 서버 IP 주소 202.207.177.177을 지정했습니다.
- -p는 Memcache가 수신 대기하는 포트입니다. 저는 11211로 설정했습니다. 1024보다 큰 포트를 사용하는 것이 좋습니다.
- -c 옵션은 최대 동시 연결 수를 설정합니다. 기본값은 1024입니다. 저는 256으로 설정했습니다. 서버 부하에 맞게 설정하세요.
- -P 옵션은 Memcache를 저장할 pid 파일을 설정합니다. 저는 /tmp/memcached.pid에 저장합니다.
소프트웨어 저장소를 통해 설치
dnf libevent-devel memcached 설치
설치 후 부팅 시 시작되도록 설정하세요
#Start systemctl start memcached #Set boot startup systemctl enable memcached #View 현재 상태 systemctl status memcached
Memcached 캐시 크기 수정
설치가 완료되면 memcached의 캐시 크기를 수정하세요. 기본값은 64M입니다. 캐시 크기를 1024M으로 변경하세요.
열려 있는 /etc/sysconfig/memcached 파일에서 CACHESIZE를 다음과 같이 수정하세요.1024
PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="1024" OPTIONS="-l 127.0.0.1,::1,controller"
수정이 완료된 후,systemctl 재시작 memcached
서비스를 다시 시작하세요
ps -ef | grep memcached
구성이 효과적인지 확인하세요
Memcached가 설치된 후 웹사이트에서 Memcached가 제대로 작동하려면 PHP에도 Memcached를 설치해야 합니다.Memcached 확장.
Memcached 확장 프로그램 설치
참고: Memcached를 설치하기 전에 PHP 확장 기능에는 Memcache 확장 기능과 Memcached 확장 기능 두 가지가 있다는 점을 알아두세요. Memcached 확장 기능은 Memcache 확장 기능의 업그레이드 버전으로, 더 많은 기능과 향상된 성능을 지원합니다. 잘못된 확장 기능을 설치하지 않도록 주의하세요.
- memcache는 네이티브 PHP를 지원하는 pecl 확장 라이브러리 버전으로, 첫 번째 세대 캐시에 속합니다.
- memcached는 libmemcached의 최신 버전입니다. 새로운 세대의 캐시이며 더욱 완벽합니다. memcached 사용을 권장합니다.
DNF가 설치한 PHP8.0의 설치 경로 및 설정 위치는 다음과 같습니다.
- RPM 패키지로 설치된 PHP의 설치 경로: /usr/bin/php-config
- PHP 설정 파일: /etc/php.ini
Memcache 확장 프로그램과 Memcached 확장 프로그램의 설치 방법은 다음과 같습니다. Memcache 확장 프로그램을 설치할 필요가 없는 경우, Memcached 확장 프로그램 설치 방법으로 바로 이동하실 수 있습니다.
소스 설치멤캐시확장 프로그램
Memcache 확장에 필요한 종속성을 설치합니다.
dnf zlib zlib-devel 설치
1단계: 열기https://pecl.php.net/package/memcachePHP8용 Memcache 확장 설치 패키지를 다운로드하세요.
참고: Memcache 확장 프로그램 설치 패키지는 PHP 버전마다 다릅니다. 해당 버전을 찾아 설치하세요.
php8용 Memcache 확장 설치 패키지: https://pecl.php.net/get/memcache-8.0.tgz
2단계: 서버에 로그인하고 Memcache 확장 프로그램 설치 패키지를 다운로드하고 압축을 풉니다.
wget https://pecl.php.net/get/memcache-8.0.tgz tar -xvf memcache-8.0.tgz cd memcache-8.0
3단계: Memcache 확장 프로그램 설치
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
설치가 성공적으로 완료되면 설치 위치가 표시됩니다. 공유 확장 프로그램 설치: /usr/lib64/php/modules/
4단계: php.ini 파일을 수정하고 Memcache 확장 기능을 활성화한 다음 php.ini 파일의 끝에 다음 내용을 추가합니다.
확장자 = memcache
PHP 구성이 올바른지 테스트한 후 PHP 서비스를 다시 시작하세요.
php-fpm -t systemctl php-fpm 재시작
PHP 프로브 파일을 확인하면 확장 프로그램이 정상적으로 시작됩니다.
소스 설치멤캐시드확장 프로그램
1단계: 열기https://pecl.php.net/package/memcachedphp8 다운로드Memcached 확장패키지를 설치합니다.
참고: PHP 버전이 다릅니다.Memcached 확장설치 패키지도 다르므로, 해당 버전을 찾아 설치하세요.
php8용 Memcached 확장 설치 패키지:memcached-3.2.0.tgz
2단계: 서버에 로그인하고 Memcached 확장 프로그램 설치 패키지를 다운로드하고 압축을 풉니다.
wget https://pecl.php.net/get/memcached-3.2.0.tgz tar -xvf memcached-3.2.0.tgz cd memcached-3.2.0
memcached, 이 확장에는 libmemcached 클라이언트 라이브러리가 필요합니다. 그렇지 않으면 다음 오류가 발생합니다.
오류: memcached를 지원하려면 libmemcached가 필요합니다. --with-libmemcached-dir=을 사용하세요. libmemcached 헤더와 라이브러리가 있는 접두사를 지정하려면
dnf libmemcached를 설치하세요 libmemcached-devel remi-libmemcached-awesome
참고: libmemcached-devel이 소프트웨어 저장소에 없는 경우 다운로드하여 설치할 수 있습니다.
wget https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/libmemcached-devel-1.0.18-15.el8.x86_64.rpm dnf --enablerepo=powertools libmemcached-devel을 설치합니다.
3단계: Memcached 확장 프로그램 설치
phpize ./configure --with-php-config=/usr/bin/php-config make && make install
설치가 성공적으로 완료되면 설치 위치가 표시됩니다. 공유 확장 프로그램 설치: /usr/lib64/php/modules/
4단계: php.ini 파일을 수정하고 Memcached 확장 기능을 활성화한 다음 php.ini 파일의 끝에 다음 내용을 추가합니다.
확장자 = memcached
PHP 구성이 올바른지 테스트한 후 PHP 서비스를 다시 시작하세요.
php-fpm -t systemctl php-fpm 재시작
PHP 프로브 파일을 봅니다.Memcached 확장정상 시작
소스 코드를 다운로드하지 않고도 pecl 명령을 사용하여 memcached 확장을 설치할 수 있습니다.
pecl memcached 설치
지식 포인트:dnf를 사용하여 소프트웨어 저장소에 PHP 확장 기능을 설치할 수 없는 경우 pecl 명령을 사용하여 PHP 공식 확장 기능 저장소에 설치할 수 있습니다.
Memcached 확장 프로그램을 설치한 후에는 WordPress와 Memcached를 연결해야 합니다. 서버 측과 웹 측을 연결하지 않으면 Memcached 캐시가 작동하지 않습니다.
WordPress 구성 Memcached 캐시
wp-config.php에 다음 내용을 추가합니다.
global $memcached_servers; $memcached_servers = array( array( '127.0.0.1', // Memcached 서버 IP 주소 11211 // Memcached 서버 포트 ) );
여러 사이트 캐시 설정이 있는 경우 다음을 참조하세요.
글로벌 $memcached_servers; $memcached_servers = array( array( '1.2.3.4', 11211 ), array( '1.2.3.5', 11211 ) );
Memcached는 IP와 포트에서 수신 대기합니다. 다음 명령을 사용하면 확인할 수 있습니다.
netstat -nutlp | 그렙 멤캐시
캐시 플러그인을 사용하여 WordPress에서 memcached 구성
W3 Total Cache Pro v2.3.0 무료 다운로드 크랙 버전을 다운로드하고 설치하세요! WordPress 캐시 플러그인을 추천합니다.
W3TC는 현재 복잡한 구성이나 코드 수정 없이 플러그인 인터페이스에서 memcached 메모리 캐시를 구성할 수 있습니다. W3TC는 강력하고 다양한 캐시 구성 옵션을 제공합니다.WP 유성플러그인 사용법.
Memcached가 제대로 작동하는지 모니터링하는 방법
모니터링 파일 memcache.php를 다운로드하려면 클릭하세요.
memcache.php 파일을 다운로드한 후 서버의 WordPress 디렉터리에 업로드하세요. 업로드하기 전에 파일에서 액세스 사용자 비밀번호를 수정하세요.
$VERSION='$Id$'; define('ADMIN_USERNAME','사용자 이름 설정'); // 관리자 사용자 이름 define('ADMIN_PASSWORD','비밀번호 설정'); // 관리자 비밀번호 define('DATE_FORMAT','Y/m/d H:i:s'); define('GRAPH_SIZE',200); define('MAX_ITEM_DUMP',50); $MEMCACHE_SERVERS[] = '127.0.0.1:11211'; // 배열로 추가 //$MEMCACHE_SERVERS[] = 'mymemcache-server2:11211'; // 다중 사이트 메모리 캐시인 경우 여기에 설정합니다.
업로드 후, memcache.php 파일의 URL 주소를 방문하여 메모리 캐시의 작업 페이지를 확인하세요.
Zend OPcache 구성
사용 오피캐시 OPcache를 사용하면 PHP 코드의 실행 효율성을 높이고 PHP 스크립트를 매번 로드하고 파싱하는 데 드는 오버헤드를 줄일 수 있습니다. OPcache는 PHP8에서 기본적으로 활성화되어 있습니다.
PHP 설정 JIT, PHP 8은 PHP 커널에 JIT 컴파일러를 추가하여 성능을 크게 향상시킬 수 있습니다. CPU 사용량이 많은 처리 기능이 강화됨에 따라, 향후 PHP가 복잡한 프로토콜 파싱도 적절하게 수행할 수 있을 것으로 예상됩니다.
첫째, JIT는 opcache가 활성화된 경우에만 작동합니다. 이는 대부분의 PHP 설치 기본값입니다. 하지만 php.ini 파일에서 opcache.enable을 1로 설정해야 합니다. JIT는 opcache.jit_buffer_size를 통해 설정됩니다.
php.ini를 구성하고 php.ini의 끝에 다음을 추가하세요.
opcache.enable=1 opcache.jit_buffer_size=100M opcache.jit=1255 opcache.revalidate_freq=0 opcache.validate_timestamps=0 opcache.max_accelerated_files=7963 opcache.memory_consumption=192 opcache.interned_strings_buffer=16 opcache.fast_shutdown=1
opcache.revalidate_freq
이 옵션은 캐시 만료 시간(초)을 설정하는 데 사용됩니다. 이 시간에 도달하면 opcache가 코드가 변경되었는지 확인합니다. 변경된 경우 PHP가 코드를 다시 컴파일하고 새로운 명령어(opcode)를 생성한 후 캐시를 업데이트합니다. "0" 값은 각 요청 시 PHP 코드의 업데이트 여부를 확인함을 의미합니다. 즉, 많은 stat 시스템 호출이 추가됩니다. 참고: stat 시스템 호출은 파일의 상태를 읽기 위한 것입니다. 여기서는 주로 마지막 수정 시간을 가져오는 데 사용됩니다. 이 시스템 호출은 디스크 I/O를 발생시키므로 불가피하게 CPU 시간을 소모합니다. 물론 시스템 호출 자체도 CPU 시간을 소모합니다. 개발 환경에서는 이 값을 0으로 설정할 수 있지만, 운영 환경에서는 아래에서 다른 설정 옵션을 소개하므로 걱정하지 마십시오.
opcache.validate_timestamps
이 옵션이 활성화된 경우(1로 설정), PHP는 opcache.revalidate_freq에 설정된 시간 이후의 파일의 타임스탬프를 확인합니다.
이 옵션을 비활성화(0으로 설정)하면 opcache.revalidate_freq가 무시되고 PHP 파일이 검사되지 않습니다. 즉, 코드를 변경한 후 서버에서 해당 코드를 업데이트하고 브라우저에서 업데이트된 코드의 해당 함수를 요청하면 업데이트 효과가 나타나지 않고 PHP를 다시 로드해야 합니다(kill -SIGUSR2를 사용하여 강제로 다시 로드).
이 설정은 다소 번거롭지만, 프로덕션 환경에서는 꼭 사용하시기를 강력히 권장합니다. 왜 그럴까요? 서버 코드를 업데이트할 때 코드가 많으면 업데이트 작업이 지연되기 때문입니다. 이 지연 시간 동안 이전 코드와 새 코드가 뒤섞이게 되어 사용자 요청 처리에 불확실성이 발생할 수밖에 없습니다.
opcache.max_accelerated_files
이 옵션은 메모리에 캐시할 수 있는 최대 PHP 파일 수를 제어합니다. 이 옵션은 프로젝트에 있는 모든 PHP 파일의 합보다 크게 설정해야 합니다. 제 코드베이스에는 약 6,000개의 PHP 파일이 있으므로 이 값을 소수 7963으로 설정했습니다(번역자 주: 이 사람이 왜 이렇게 설정했는지는 모르겠습니다. 7963은 6,000보다 큰 가장 작은 소수가 아닙니다). "find . -type f -print | grep php | wc -l" 명령을 실행하면 코드베이스에 있는 PHP 파일 수를 빠르게 계산할 수 있습니다.
opcache.메모리_소비
이 옵션의 기본값은 64MB이지만, 제 코드가 크기 때문에 192MB로 설정했습니다. opcache가 사용하는 총 메모리 양은 opcachegetstatus()를 호출하여 확인할 수 있습니다. 이 값이 큰 경우, 이 옵션을 더 큰 값으로 설정할 수 있습니다.
opcache.interned_strings_buffer
매우 유용한 옵션이지만, 제대로 문서화되지 않은 것 같습니다. PHP는 성능 향상을 위해 문자열 인턴(string interning)이라는 기법을 사용합니다. 예를 들어, 코드에서 "foobar"라는 문자열을 1000번 사용하더라도 PHP는 처음 사용될 때만 문자열을 저장할 변경 불가능한 메모리 영역을 할당하고, 나머지 999번의 사용은 이 메모리 영역을 직접 가리킵니다. 이 옵션은 이 기능을 한 단계 더 발전시킵니다.
기본적으로 이 변경 불가능한 메모리 영역은 단일 php-fpm 프로세스에만 존재합니다. 이 옵션을 설정하면 모든 php-fpm 프로세스에서 공유됩니다. 대규모 애플리케이션에서는 이 기능이 메모리 절약 및 애플리케이션 성능 향상에 매우 효과적일 수 있습니다.
이 옵션의 값은 메가바이트(MB)입니다. 16으로 설정하면 16MB를 의미합니다. 기본값은 4MB로, 비교적 낮은 값입니다.
opcache.fast_shutdown
매우 유용하지만 문서화되지 않은 또 다른 옵션입니다. 문자 그대로 "더 빠른 종료 허용"을 의미합니다. 단일 요청이 끝날 때 코드에서 소멸자를 호출하는 더 빠른 메커니즘을 제공하여 PHP의 응답 속도를 높이고 PHP 프로세스 리소스를 재활용하여 애플리케이션이 다음 요청에 더 빠르게 응답할 수 있도록 합니다. 이 메커니즘을 사용하려면 1로 설정하세요.