Magento TTFB를 개선하기 위한 5가지 필수 팁

게시 됨: 2019-01-08

이것은 Vasili Nikolaev의 게스트 게시물입니다.

첫 번째 바이트까지의 시간(TTFB)은 웹사이트의 가장 중요한 속도 지표 중 하나입니다. 이것은 사용자가 Magento 스토어 URL을 입력한 후 얼마나 많은 시간이 지나고 응답을 받는 시간을 1바이트(따라서 "첫 번째 바이트까지의 시간"이라는 이름 )까지 나타냅니다.

첫 번째 바이트까지의 시간 인간(기다리는 것을 좋아하지 않음)과 검색 엔진 로봇(Google은 느린 웹사이트를 싫어하고 순위를 낮춥니다) 모두에게 매우 중요합니다. MageWorx).

그러나 동시에 Google의 수장 중 한 명인 John Mueller는 Google이 순위에 TTFB를 사용하지 않는다는 설득력 있는 증거가 있습니다.

마젠토 2 TTFB | 메이지웍스 블로그

따라서 SEO를 위해 TTFB에 너무 집착하지 말고 대신 사용자 경험과 매장 성능에 집중하는 것이 좋습니다.

TTFB가 전체 페이지 로드(" 마지막 바이트까지의 시간"이라고 함)보다 더 중요한 이유는 무엇입니까? 첫 번째 바이트를 빨리 로드할수록 사용자가 콘텐츠를 더 빨리 읽기 시작할 수 있기 때문입니다. 페이지의 모든 사진을 즉시 볼 수 없다는 것은 중요하지 않습니다. 웹 서버가 나머지 콘텐츠를 로드하는 동안 사용자에게 할 일을 제공하는 것이 더 중요합니다.

목차

  • 1. 병목 현상을 이해하여 제거
    • 좋은 TTFB는 무엇입니까?
  • 2. 더 적합한 데이터베이스 엔진으로 마이그레이션
  • 3. 현재 트래픽 요구 사항에 맞는 서버 설정
  • 4. 더 나은 캐싱 솔루션 설정
  • 5. 쓸모없는 확장 프로그램 없애기
  • 보너스 팁: 스토어 및 고객 로깅 설정 조정
  • 성능을 위한 끊임없는 전투

1. 병목 현상을 이해하여 제거

좋은 TTFB는 무엇입니까?

마젠토 2 TTFB | 메이지웍스 블로그
Google은 200ms 미만의 TTFB가 목표라고 말합니다. 200ms 미만의 검색 엔진은 귀하를 가장 높은 순위로 매깁니다. 이 값을 초과하면 Google에서 웹사이트에 페널티를 적용합니다. 600ms 이상은 Google 자체 TTFB 테스트도 통과할 수 없음을 의미합니다.

TTFB에 영향을 미치는 많은 요소가 있습니다. 특별한 순서 없이:

  • 웹 서버 구성 및 리소스,
  • 네임서버 해결 속도,
  • 온페이지 코드 실행 시간,
  • 구현된 백엔드 캐싱 솔루션,
  • 네트워크 추측.

타사 서비스 또는 Google TTFB 테스트를 사용하여 TTFB 값을 확인하십시오. 또한 여기에서 인기 웹사이트 또는 경쟁업체와 결과를 비교하여 모바일 사용자에게 매장이 로드되는 방식에 대한 고유한 관점을 얻을 수 있습니다.

마젠토 2 TTFB | 메이지웍스 블로그 또 다른 훌륭한 진단 도구는 Magento 2 Profiler 입니다. 이를 통해 모든 페이지 요청을 빠르게 시각화하고 분석할 수 있는 더 작은 블록으로 쉽게 나눌 수 있습니다.

표에서 두 가지 중요한 값인 시간과 개수에 특히 주의하십시오. 시간은 자명합니다. 사용자 요청과 서버 응답 사이의 실제 지연입니다. Cnt 행은 이 항목이 출력을 생성하기 전에 호출된 횟수에 해당합니다.

데이터베이스 쿼리를 분석하기 위해 Magento 2 기본 프로파일러와 함께 Database Profiler를 사용할 가치가 있습니다.

마젠토 2 TTFB | 메이지웍스 블로그 이것은 수행해야 할 첫 번째 단계입니다. Magento Profiler를 활성화하고 TTFB에 가장 큰 문제가 있는 페이지를 확인합니다. 기본 프로파일러를 사용할 수 있지만 프로파일러 SQL을 설정하는 것이 좋습니다. 무료이며 세션당 쿼리 수에 대한 편리한 개요를 제공합니다.

프로파일러는 모든 요청을 더 작은 부분으로 분할하여 어떤 섹션이 귀하를 끌어내리는지 즉시 확인할 수 있습니다.

2. 더 적합한 데이터베이스 엔진으로 마이그레이션

Magento 2 저장소 데이터베이스는 비효율적이거나 느리거나 Magento 처리에 가장 적합한 선택이 아닌 저장소 엔진을 사용하는 경우 가장 큰 성능 병목 현상이 쉽게 될 수 있습니다.

이것이 왜 중요한가? MySQL에는 다양한 스토리지 엔진을 선택할 수 있습니다. 공식 MySQL 문서에서 최소 10개의 지원되는 솔루션을 계산했으며 더 많은 솔루션이 있습니다.

기본 MyISAM MySQL 엔진과 함께 Magento를 사용할 수 있지만 MariaDB Ari 스토리지 엔진 또는 Percona XtraDB 엔진과 같은 대체 데이터베이스 엔진을 사용하면 기본 설정에 비해 스토어를 더 안정적이고 (때로는) 더 빠르게 만들 수 있습니다.

예를 들어, Aria 엔진은 Magento가 스토리지 엔진이 많은 임시 테이블을 사용하도록 강제하는 경우 더 스마트한 접근 방식을 사용합니다.

Percona 는 데이터베이스 쿼리 속도를 높이기 위해 시간이 지남에 따라 여러 성능 조정을 통합한 MySQL의 또 다른 포크입니다. MyISAM 과 비교하여 많은 병렬 쿼리로 훨씬 빠르게 작동하고 트랜잭션 처리에 특화되어 있습니다.

데이터베이스 최적화를 위한 최선의 권장 사항은 요구 사항을 주의 깊게 검토하고 가장 적합한 엔진을 선택하는 것이지만 모든 사람에게 유용한 몇 가지 팁이 있습니다.

  • 상점 검색을 위해 기본 MySQL을 사용하지 마십시오. Elasticsearch를 설치하여 웹사이트의 모든 검색 쿼리 속도를 높이고,
  • 가장 적합한 데이터베이스 엔진을 선택하십시오.

3. 현재 트래픽 요구 사항에 맞는 서버 설정

인프라 비용을 절감하는 것은 좋은 생각이 아닙니다. 시간이 지남에 따라 꾸준히 성장하는 비즈니스는 더 많은 고객, 더 많은 거래, 더 많은 주문을 보게 될 것입니다. 따라서 임의 사용 급증 및 이벤트 생성 유동인구에 맞게 조정하려면 설정을 80% 용량으로 유지하는 것이 좋습니다. 그 20%는 모든 상황에서 적절한 수준의 성능을 유지하기 위해 먼 길을 갈 수 있습니다.

자신의 가치가 있는 호스팅 팀이 원활하게 운영하는 데 필요한 시스템 요구 사항을 알려줄 것입니다. 그러나 일정 기간 동안 빠르게 성장했다면 업그레이드 로드맵을 설명하는 것은 자신의 책임이 됩니다.

Magento 스토어에는 시스템 요구 사항에 큰 영향을 미치는 여러 중요한 지점이 있습니다.

  • 매장 규모(매장 조회수),
  • 카탈로그의 범주 및 SKU(속성 및 속성 집합 포함),
  • 평균 트래픽 수(평균 페이지 조회수 및 역대 최고치),
  • 일일 거래(디지털 다운로드, 지불 및 유사한 작업).

일반적으로 평균 트래픽은 필요한 CPU 성능에 직접적인 영향을 미칩니다. 따라서 최적의 CPU 설정을 찾은 후 RAM을 CPU 요구 사항에 맞게 조정하여 균형 잡힌 웹 서버 프로필을 만드십시오.

데이터베이스 저장소 크기는 현재 RAM에 따라 다르므로 현재의 모든 요구 사항을 충족할 만큼만 선택해야 합니다. 약간의 호흡 공간을 위한 퍼포먼스 쿠션도 만들어 보세요. 목표는 간헐적인 트래픽 급증에 대처하기 위해 항상 여분의 CPU와 RAM을 20-25% 이상 유지하는 것입니다.

4. 더 나은 캐싱 솔루션 설정

웹 사이트 캐싱은 감자 튀김의 발명 이후 차선책입니다. 서버 캐시는 웹사이트의 속도를 향상시켜 훨씬 빠르게 느껴집니다. 캐싱은 자주 사용하는 데이터를 SSD 또는 하드 드라이브에서 RAM으로 이동하여 작동합니다.

HDD는 최대 200MB/sec, SSD는 최대 3200개의 데이터를 순차적으로 읽을 수 있는 반면 DRAM 모듈은 최대 20GB/s까지 읽을 수 있습니다. 이것은 우리에게 x10의 차이를 제공하거나 적어도 한 차수의 크기를 제공합니다.

RedisVarnish 는 모두 Magento 매장에서 가장 인기 있는 업그레이드 중 하나입니다. Magento 2에 권장되는 캐싱 옵션입니다. 두 솔루션 모두 Magento 1에서도 잘 작동합니다.

Varnish는 구성하기 어려운 도구이지만 올바르게 수행되면 100-200ms 내에 TTFB 값을 제공합니다. 전체 페이지 캐시 구성의 경우 TTFB는 250ms 이내입니다.

Varnish의 또 다른 뚜렷한 장점은 더 많은 웹 페이지에서 작동합니다. FPC는 동적 콘텐츠가 많은 페이지에서 작동하지 않지만 Varnish는 이러한 까다로운 사용 사례에서도 더 나은 성능을 제공합니다.

5. 쓸모없는 확장 프로그램 없애기

솔직히 말해서, 사용하지 않는 확장 기능을 비활성화하는 것은 모든 Magento 2 스토어에 대한 #1 팁이지만 종종 간과됩니다. 웹사이트에서 실행되는 모든 확장 프로그램은 일부 리소스를 사용합니다. 제대로 구성되지 않으면 TTFB가 느려질 수도 있습니다.

기억하십시오: 서버는 사용자에게 피드백을 보내기 전에 이 코드를 실행해야 합니다.

확장 목록을 정리하면 Magento 속도도 빨라집니다. 이들 중 어느 것도 비활성화할 수 없더라도 Magento 스토어와 타사 확장을 모두 최신 상태로 유지하여 사이트 성능을 확실히 향상시키는 버그 수정 및 최적화의 이점을 누리십시오 .

보너스 팁: 스토어 및 고객 로깅 설정 조정

Magento 고객 로깅을 꺼야 합니다. 이렇게 하면 데이터베이스 쿼리에 소요되는 시간을 줄이는 데 도움이 됩니다. 고객 로깅은 비교적 사소한 활동이므로 큰 영향은 아닙니다. 성능 향상은 현재 매장을 방문하는 고객 수에 따라 달라집니다.

스토어 로깅을 끄지 않는 것이 좋습니다. Magento 문제 해결에 도움이 되는 귀중한 도구입니다. 그러나 저장소 로그가 서버 시간을 차지하도록 하는 대신 Papertrail과 같은 타사 서비스로 로그를 이동할 수 있습니다.

성능을 위한 끊임없는 전투

두 개의 Magento 매장이 동일하지 않습니다. 그들 각각은 속도를 위해 매장을 최적화하는 데 있어 서로 다른 도전에 직면할 것입니다. 이는 복잡한 타사 확장, 대규모 데이터베이스 및 여러 저장소가 있는 오래된(그리고 더 큰) Magento 웹사이트에 특히 해당될 수 있습니다.

성능을 위한 이 전투에서 "승리"할 수는 없지만 우리의 공통 목표는 모든 전자 상거래 웹 사이트 중에서 Magento 매장을 속도, 사용자 경험 및 보안 면에서 동급 최고로 만드는 것입니다.


저자 소개

Vasili Nikolaev는 상점 주인의 삶을 조금 더 쉽게 만드는 가장 효과적인 팁을 찾기 위해 영구적인 보물 찾기를 하고 있습니다. 그에게 어려운 문제에 대한 훌륭한 해결책을 찾는 것보다 더 만족스러운 것은 없습니다.