일관성없는 페이지로드 시간


11

나는 큰 마 젠토 프로젝트를 완성하는 데 매우 가까워서 마젠 토의 속도를 향상시키는 데 집중했다. 일종의 서문으로 저는이 대규모 프로젝트를 사내에서 수행하고 내가 진행하는 것을 파악하는 프론트 엔드 개발자입니다.

2GB 램이있는 Media Temple 전용 가상 서버에서 magento를 개발했습니다. 최근에는 각 제품에 대해 최대 600 개의 제품과 약 25 개의 서로 다른 속성 (총 300 개의 고유 한 속성)과 50 개의 범주가있었습니다. 로드 속도 문제를 15 초 정도 해결하려고 모든 것을 삭제했습니다.

그러나 내로드 시간이 여전히 길고 일관성이 없습니다. 응답을 위해 500ms를보고하는 Firebug로 홈페이지를 다시로드하고 즉시 다시로드하고 9 초 이상보고합니다. 이것은 서버 문제입니까 아니면 Magento 자체의 문제입니까? 그런 것을 테스트하려면 어떻게해야합니까?

답변:


11

먼저 PHP 렌더링 시간 또는 실제 페이지로드 시간에 관계없이 테스트 대상을 결정해야합니다.

두 가지 시나리오에서 인터넷 연결 자체가 병목 현상이나 지터의 원인이 될 수 있으므로 Firebug를 사용하는 것이 신뢰할 수 없습니다.

PHP 렌더링 시간

PHP 렌더링 시간이 개선 / 변경되었는지 확인하려는 경우 가장 정확한 방법은 Magento 프로파일 러의 출력을 사용하는 것입니다.

에서 index.php, 주석

Varien_Profiler::enable();

그런 다음

관리> 시스템> 구성> 개발자

프로파일 러가 활성화되어 있는지 확인하십시오.

모든 페이지 하단 (프론트 엔드 및 백엔드)의 맨 아래에 테이블 형식의 출력으로 Mage::run()시작 지점 부터 측정 된 페이지로드 시간이 줄어 듭니다 . 첫 번째 줄은 전체 PHP 렌더링 시간을 나타냅니다 (Mage 내).

PHP 변경으로 인해 페이지로드 시간이 달라지는 것은 물론, 병목 현상을 식별 할 수 있다는 점에서 가장 정확한 수치입니다.

PHP 웹 서버 렌더링 시간

다음 테스트 유형은 웹 서버 자체의 오버 헤드를 고려하는 것입니다 (그러나 마지막 마일 연결은 아님). 따라서이 테스트가 정확하고 '인터넷'자체의 영향을받지 않으려면 웹 서버 자체에서 실행해야합니다.

순수 PHP 렌더링 시간, 실제 페이지로드 시간 및 동시성 테스트까지 테스트 mage-perftest할 수있는 자체 유틸리티 (자세한 내용은 여기 참조 )를 사용합니다.

PHP 웹 서버 렌더링 시간 만 테스트하려면 다음을 사용하십시오 (URL을 적절하게 대체).

./mage-perftest -u me-s1.sonassihosting.com -b

이 테스트는 페이지 로딩 시간 (JS / CSS / 이미지를 무시하고 페이지의 PHP 요소에 대해서만)을 분석합니다. 출력은 다음과 같습니다.

Test Summary
============
Total files:              1
Total downloaded:         4K
Avg. page weight:         4.00K

Total time:               0.035s
Min response:             0.035s
Max response:             0.035s
Avg. page response:       0.03s

Concurrency/Repeats:      1
Transactions/s            28.57
Test URL:                 me-s1.sonassihosting.com
Success rate:             1/1 (100.00%)

실제 웹 서버 렌더링 시간

최종 테스트 유형은 전체 페이지 (PHP + 정적 컨텐츠)를 다운로드하는 데 걸리는 시간입니다. 다시 말하지만, mage-perftest예를 들어 이것을 사용할 수 있습니다 .

./mage-perftest -u me-s1.sonassihosting.com

전염병과 같은 온라인 테스트 서비스를 피하십시오

GTMetrix, Pingdom 등과 같은 온라인 속도 테스트 도구가 있습니다. 세분화 된 프로파일 링을위한 정확한 결과를 제공하지는 않습니다.

외부 네트워크 연결을 테스트 할 수 있지만 실제 PHP 성능을 확인하는 수단으로는 완전히 쓸모가 없습니다. 이를 위해 온 서버 / 로컬 테스트를 고수하십시오.

기타 노트

우리는 원격 테스트에 대한 기사를 작성했으며 왜 피해야하는지 http://www.sonassi.com/knowledge-base/magento-kb/why-siege-isnt-an-accurate-test-tool-for-magento- 공연/

VPS에서 Magento를 실행하는 것은 나쁜 생각입니다. 다른 사람들은 동의하지 않을 수 있지만 여러 가지 이유로 마 젠토 매장에 적합하지 않은 환경입니다. 그리고 우리는이 정맥에 대한 많은 질문에 답변했습니다.


Perftest는 대단합니다-Github에 있습니까?
philwinkle

나는 따라서 perftest을 실행하는 문제가 있었지만 프로파일 러는 몇 가지 흥미로운 정보를 제공 : mage::dispatch::routers_matchmage::dispatch::controller::action::predispatch것 같다 확실 솔루션 ... 검색이 훨씬 거기까지 오지 않는다 무엇 모르겠지만, 병목 현상.
andyjv

한 번에 더 많은 페이지를 열수록 magento가 더 많은 시간을 소비 mage::dispatch::routers_match하여 28 초 페이지로드에서 22 초를 차지합니다. 같은 하중 mage::dispatch::controller::action::predispatch에서 22 대, CORE::create_object_of::Mage_Core_Model_Session21 대 및 Mage_Core_Model_Session_Abstract_Varien::start/start21 대도 있습니다. 나는 확실히 어떤 부모 / 자식 일이 일어나고 있어요,하지만 함께 routers_match가장 오래되고, 나는 다른 20초 기능의 부모 먹으 렴 있으리라 믿고있어
andyjv

프로파일 러 출력은 계층 적으로 포함됩니다. 즉. 해당 기능 내에서 실행되는 모든 것에 대한 포괄적 인 합계를 보여줍니다. 그래서 Mage이 모든 것을 포함로 최장 소요됩니다 Routers_Match다른 모든 것을에서 양산되는, 그것은 호출하는 다음 기능은 기본적으로. 병목 현상이 아니라 호출하는 것입니다 (테이블을 더 내려다보십시오). 프로파일 링하는 경우 하나 이상의 창을 열지 마십시오. 그 결과 아무것도 달성되지 않습니다.
벤 레 사니-Sonassi

아래 Routers_Match는 : DISPATCH EVENT:controller_action_predispatch21.0710, OBSERVER: log21.0565
andyjv

3

이 문제는 서버 문제이며 Magento 문제는 아닙니다. 사용하는 서버 종류에 따라 1 초 미만의로드 시간을 얻을 수 있습니다. http://www.magespeedtest.com/ 에서보다 정교한 테스트를 실행할 수도 있습니다 . 다른 서버 제공 업체의 속도도 검토 할 수 있습니다.

http://www.webpagetest.org/ 의 폭포수 보고서를 사용 하여 "느림"이 정확히 어디에서 오는지 확인하는 것이 좋습니다 . 속도를 향상시키는 데 도움이되는 부분 (예 : 각 CSS, js 및 이미지 파일을 다운로드하는 데 걸리는 시간)과 같은 부분으로 나뉩니다.

즉, Magento 코드, css, js, 이미지 및 컨텐츠를 최대한으로 최적화하더라도 서버가 항상 가장 큰 문제입니다. Magento를 돕기 위해 서버를 더 잘 조정 했으므로 Magento 호스팅 공급자를 사용하는 것이 좋습니다. 개인적으로 Nexcess를 사용하지만 다른 사람들은 Sonassi Hosting과 Peer1을 들었습니다.

속도를 높이는 방법에 대한 몇 가지 기사가 있습니다. Magento 웹 사이트에서 흰색 페이지를 읽는 것이 좋습니다.

엔터프라이즈에 더욱 적합하지만 많은 조언을 통해 혜택을 얻을 수 있습니다. 또한, 마 젠토를 최신 상태로 유지하십시오! 현재 릴리스에서 두 개 이상의 버전으로 떨어지지 않아야합니다.


1
여기 kab8609가있어서 반갑습니다! :-)
Fabian Blechschmidt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.