Magento 2가 왜 매우 느린가요?


30

Magento 1.9를 사용했는데 괜찮습니다. 간단한 줌라 사이트만큼 빠르지는 않았지만 많은 고객이 아무런 문제가 없었습니다.

이제 내 사이트를 Magento 2로 업그레이드하고 싶었습니다. 새 호스트 (현재와 동일)를 구입하고 샘플 데이터와 사용하기 어려움없이 Magento 2를 설치했습니다. 관리자뿐만 아니라 빈 홈페이지도 몇 분이 걸립니다. 로드하고 계정을 만들려고 할 때 "리소스 한도에 도달했습니다"라는 오류가 발생합니다.

Facebook FlashCache, OptimumCache 및 Cloudflare로 시도했지만 제작자가 Magento 2 가 첫 번째 버전보다 훨씬 빠르다고 말했지만 아무런 변화가 없었습니다 .

몇 년이 지나도 왜 고칠 수 없는지, 왜 그렇게 많은 사람들이 그것을 사용하는지 이해하고 싶습니다.

그것을 고정시키는 방법이 있습니까?

최신 정보:

이전에 mgt-commerce를 사용했는데로드 속도가 2 초 미만으로 너무 빠르지 만 비용이 너무 많이 듭니다 .AWS 가격 + € 199.00

그들은 기본적으로 php7 / HHVM, Varnish, Redis, CDN, NGINX를 제공했습니다. 왜 그렇게 빠른지 추측합니다.

Amazon WS 계정을 구입해야했는데 왜 내 사이트가 실제로 Amazon에 의해 호스팅되는지 추측 할 수 없습니다.

저렴한 가격으로 동일한 속도를 찾고 있습니다. VPS 제공자 예.

나는 둘러 보았지만 모든 호스팅 제공 업체가 Magento 호스팅을 보유하고 있다고 주장했습니다. Siteground, Mochahost, Hostgator, Fastcomet 등

어쩌면 경쟁 업체를 이길 수 있도록 이러한 캐시를 설치하는 호스팅 제공 업체가있을 수 있습니다.

추신 : 내 게시물이 프로그래머에게 어리석은 것처럼 보이면 불행히도 대학에서 경제, 상업 및 마케팅을 선택했습니다.


Facebook FlashCache, OptimumCache 및 Cloudflare로 무엇을 시도했는지 설명해 주시겠습니까?
mbalparda

1
환경 문제처럼 보입니다. 내 VM에서 FPC <0.1s 및 FPC <0.01s없는 cms / 홈 페이지가 열려 있습니다.
KAndy

매장을 병합 해제 CSS / JS> 설정> 고급> 개발자 여기에 내 의견을 참조 magento.stackexchange.com/questions/150073/...
콘스탄틴 Gerasimov

2
나는 M2로 시작하여 성능에 매우 실망했습니다. 소프트웨어가 단일 사용자에 대해 수천 개의 캐시를 실행해야하는 경우 문제가 있습니다. 곧 마음이 바뀌기를 바랍니다.
Ricardo Martins

@KAndy 당신은 어떤 VM을 사용할 수 있습니까? 방랑자를 사용하면 프로비저닝 스크립트를 공유 할 수 있습니까? 여러 VM을 시도했지만 모두 작동하지 않았습니다. 마 젠토 설치에 성공했지만 페이지가로드되지 않습니다.
Alan

답변:


23

Magento 2 성능을 향상시키는 데 사용할 수있는 여러 리소스가 있으며 모두 잘 정리되어 있습니다.

모드 : Magento 2는 기본 모드 인 가장 느린 모드를 도입했습니다. 개발자 모드를 사용 해보고 항상 라이브 모드를 프로덕션 모드로 실행하십시오. 자세한 내용은 여기를 참조하십시오 .

캐시 : 바니시기본적 으로 지원되며 구성 및 사용이 매우 쉽습니다.

Redis : Redis 는 교체 할 선택적 백엔드 캐시 솔루션으로 Zend_Cache_Backend_File, 기본적으로 Magento 2에서 사용됩니다. 세션 스토리지 및 페이지 캐싱에 사용할 수 있습니다.

Memcache : Memcached는 데이터베이스 호출, API 호출 또는 페이지 렌더링 결과에서 발생하는 임의의 작은 데이터 (문자열, 객체)를위한 메모리 내 키-값 저장소입니다. Magento 2에서는 세션에 사용할 수 있습니다 .

PHP 7 : Magento 2는 기본적으로 PHP 7과 호환됩니다. PHP 7이 성능에 어떻게 영향을 미치는지에 대한 많은 연구가 있습니다.

이것은 시작에 불과합니다. 웹 서버와 데이터베이스 서버를 미세 조정할 수 있지만 특정 사용 사례에 따라 크게 달라집니다.

직접 수행하는 방법을 모르는 경우 Magento 호스팅 전문 회사가 많이 있습니다.

꽤 견고한 개발 환경의 경우 개인적 추천은 Paliarush 'Vagrant 또는 Magento에서 얻은 VM 입니다. 공식 도커 이미지가 곧 나옵니다.


8

마 젠토는 개발자 모드에서도 잘 작동합니다. 그래도 초기 구성이 필요합니다.

먼저 Ubuntu를 가정하고 Magento가 올바르게 설정되어 있는지 확인하십시오.

Magento 2.2 이상이 PHP 7.1 http://devdocs.magento.com/guides/v2.2/install-gde/prereq/php-ubuntu.html을 지원하므로 최신 빌드를 사용 하십시오.

sudo apt-get install php7.1 php7.1-imap php7.1-xml php7.1-dom php7.1-intl

여러 PHP 버전을 실행하는 경우 7.1을 통해 기본으로 설정하면

sudo update-alternatives --set php /usr/bin/php7.1

마젠 토로

  1. 아직 개발자로 설정하지 않은 경우 php -f bin/magento deploy:mode:show

    php -f bin/magento deploy:mode:set developer

  2. Magento의 캐시가 활성화되어 있는지 확인

    php -f bin/magento cache:status

활성화되지 않은 경우 (일련의 1)

php -f bin/magento cache:enable

JS / CSS 번들링 사용

상점> 구성> 고급> 개발자

* 위 메뉴 항목은 개발자 모드에서만 나타납니다.

템플릿 설정

  • HTML 축소 = 예

자바 스크립트 설정

  • JS 파일 병합 = 예

  • JS 번들링 활성화 = 예

  • JS 파일 축소 = 예

CSS 설정

  • CSS 병합 = 예
  • CSS 축소 = 예

모든 단계에서 캐시를 플러시 한 후 여기에서 캐시 플러시를 수행하십시오. 이는 로딩 시간을 개선하기위한 기준입니다.

php -f bin/magento cache:flush

고급 번들링

이것은 그 자체가 magento devdocs의 지침에 따라 게시물을 활성화하는 방법에 관한 것입니다. 이로 인해 프론트 엔드 JS 로딩이 3 배 빨라질 수 있습니다.

Redis 사용

sudo apt-get update
sudo apt-get install build-essential tcl8.5
sudo apt-get install make
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
cd utils/
sudo ./install_server.sh

/www/project/app/etc/env.php 편집

'cache' => 
  array (
    'frontend' => 
    array (
      'default' => 
      array (
        'backend' => 'Cm_Cache_Backend_Redis',
        'backend_options' => 
        array (
          'server' => '127.0.0.1',
          'database' => '0',
          'port' => '6379',
        ),
      ),
      'page_cache' => 
      array (
        'backend' => 'Cm_Cache_Backend_Redis',
        'backend_options' => 
        array (
          'server' => '127.0.0.1',
          'port' => '6379',
          'database' => '1',
          'compress_data' => '0',
        ),
      ),
    ),
  ),

PHP-FPM 사용

apt-get install php7.1-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.1-fpm
sudo service php7.1-fpm restart
sudo service apache2 restart

PHP에서 opcache 활성화

/etc/php/7.1/apache2/php.ini 찾기 opcache.enable 편집

opcache.enable=1

또한 AWS RDS와 같은 Cloud DB 또는 기타를 사용하는 것이 좋습니다. mysql 구성의 어려움을 덜어 줄 것입니다.

이제 생산 모드를 활성화하면 php -f bin/magento deploy:mode:set production

당신은 그것이 합리적으로 잘 돌아가고 있음을 발견해야합니다.

여기에서 더 나아가서 니스를 추가하고 Nginx로 전환하여 정적 파일의 CDN을 추가 할 수 있습니다.


2

MAMP가있는 Macbook Pro (2016 년 말) 에서도이 문제가 발생했습니다.

내가하고 싶었던 것은 Magento 2 테마를 만드는 것이 었습니다. 모든 캐시를 비활성화했으며 페이지 (프론트 엔드 및 백엔드)를 다시로드하는 데 30 대가 걸렸습니다.

"php magento cache : enable"명령으로 모든 캐시를 활성화했으며 사이트가 매우 빠르게로드됩니다. 캐시 유형을 비활성화하지 않고도 Grunt 및 LESS로 작업 할 수 있습니다.


1

마 젠토 2는 기본적으로 느리지 않습니다. 빠르게하려면 다음 단계를 따라야합니다.

  1. 서버 및 시스템 요구 사항

  2. 마 젠토 버전 업데이트

  3. 바니시 캐시 사용

  4. Memcached 구성

  5. 플랫 카테고리 및 제품 사용

  6. 자바 스크립트 및 CSS 최적화

  7. 컨텐츠 전달 네트워크

  8. 가벼운 테마 사용

  9. 버그가없는 확장

  10. 이미지는 완전히 최적화되어야합니다


22
미안하지만, 당신이 응용 프로그램에 캐싱의 여러 레벨을 추가해야하는 경우, 그것은 이다 기본적으로 느린.
Robert Egginton

Robert : Dude, 다중 계층 시스템의 여러 계층에 캐시를 추가하는 것이 올바른 종류의 아키텍처입니다. 우리는 캐시에 대해 캐시를 이야기하지 않습니다 ... -o-
miracules

개발 중에 캐시를 사용하는 것은 실제로 최적의 솔루션이 아닙니다. 변경 될 때마다 캐시를 ​​지우는 것은 PHP가 아니라 컴파일 된 언어로 개발하는 것과 같은 느낌입니다.
Alan

0

마 젠토 2가 느리다고 어떻게 생각하십니까? 매우 무거운 테마를 사용하는 내 사이트의 페이지 속도는 93/100으로 견고하고로드 시간은 2 초입니다. 귀하의 웹 서버가 귀하의 사이트 성능에 큰 역할을하기 때문에 Magento를위한 더 나은 호스트를 확보하고 싶습니다. "기본"모드는 전혀 느리지 않습니다. 프로덕션 모드로 전환 할 준비가 될 때까지 상점을 기본 모드로 실행했으며 기본 모드에서 91/100을 기록했으며 프로덕션 모드로 전환 한 후에 만 ​​93/100으로갔습니다.

Magento 2를 실제로 사용하려면 더 나은 호스트와 더 나은 웹 서버를 얻으십시오.


magento cache:disable로드 시간이 30 초를 초과 한 후
톰 앤더슨
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.