Magento 2 개발 사이트를 빠르게 만드는 방법?


18

모든 캐시를 끄고 배포 모드를 개발로 설정했습니다. 따라서 모든 컴퓨터의 Magento 2 개발 사이트는 Magento 1.x 사이트에 비해 매우 느립니다.

마 젠토 2는 정상입니까?

최대 속도를 갖도록 Magento 2 개발 사이트에 사용해야하는 서버 및 Magento 구성은 무엇입니까?

최신 정보:

로컬 개발을 위해 Mac에서 구성 문제가 있었기 때문에 opcache를 비활성화하여 사이트 속도를 높일 수있었습니다.


백엔드 파일 캐시를 바꾸려면 Redis를 설치하십시오. PHP 세션에는 memcache를 사용하십시오. 캐시를 활성화하고 특정 작업을 수행 할 때 활성화하지 않으려는 캐시 섹션을 비활성화합니다. 테마 만 스타일링하는 경우 grunt watch를 사용하고 모든 캐시를 활성화하십시오. 구성 방법은 magento 2 공식 문서에 있습니다.
모호

당신이 100,000 + 제품이 없으면 레디 스 쓸모가
Claudiu Creanga

또한 로컬 윈도우 PC에서 느린 개발로 고통 받고 있습니다. 귀하의 경험에 따르면, 우분투 또는 Linux Mint에서 로컬 개발을 시작하는 것이 더 나을 것입니까? 어떤 구성을 권장합니까?
Jai

답변:


12

이 방랑 상자 https://github.com/EcomDev/fast-hypernode를 사용할 수 있습니다 .

나는 그것을 사용하고 꽤 빠릅니다. 캐시가 비활성화되고 xdebug 인 개발자 모드에서 페이지 새로 고침은 약 2-3 초입니다.

또는 magestead에서 제공 한 vagrant box를 사용할 수 있습니다 : http://www.magestead.com/

  • php7을 사용하십시오.
  • CSS와 js 생성에 gulp를 사용하십시오 (grunt보다 빠름). snowdog으로 이미 구축 된 구성을 시도 할 수 있습니다 (2 분 후) : https://github.com/SnowdogApps/magento2-frontools
  • 테스트를 수행하는 경우 3GB의 램을 사용하십시오.
  • 필요한 캐시 만 비활성화 하십시오 . 프론트 엔드를 수행하는 경우 캐시를 비활성화 할 필요가 없습니다.
  • 프런트 엔드 개발에 livereload 또는 browsersync를 사용하면 페이지를 다시로드 할 필요가 없습니다.

magento 명령의 기능과 실행시기를 이해하십시오. 많이 달리고 있다면 setup:static-content:deploy그 점들을보고 화를 낼 것입니다. Grunt 또는 gulp는 @magento_import에 대해 모르므로 파일을 추가하거나 제거 할 때 dev:source-theme:deploy위의 것보다 훨씬 빠른 파일을 실행해야합니다 .

개선되지 않는 것 :

Redis가 100k가 넘는 제품을 보유하지 않는 한 차이가 없으므로 귀찮게하지 마십시오 ( http://www.developers-paradise.com/wp-content/uploads/2016/05/05-Yaroslav-Rogoza-Magento-2-performance- 다른 환경에서 비교 .pdf ).

현재 magento2가 requirejs (2mb of js)를 사용하는 방식 때문에 http2는 아무런 차이가 없습니다.


또한 로컬 윈도우 PC에서 느린 개발로 고통 받고 있습니다. 귀하의 경험에 따르면, 우분투 또는 Linux Mint에서 로컬 개발을 시작하는 것이 더 나을 것입니까? 어떤 구성을 권장합니까?
Jai

@Jai 죄송합니다, 민트에 대한 경험이 없습니다. 나는 Mac과 우분투를 사용합니다.
Claudiu Creanga

선생님 .... 마 젠토 2의 좋은 개발 속도를 기대할 수 있습니까? ... 창 7에서 Vagrant를 사용하는 경우 (i5 + 12Gb Ram) 또는 개발 속도가 느리기 때문에이 시스템 구성으로 우분투에 가야합니다
Jai

1
@Jai Windows는 괜찮습니다. 일부 캐시가 켜진 상태에서 개발자 모드에서 2-3 초 동안 새로 고침해야합니다. 귀하의 컴퓨터 에서이 github.com/alankent/docker-gsd 가 얼마나 빠른지 확인 하고 그 속도를 목표로하십시오. 난잡한 나는 hypernode packagist.org/packages/byteinternet/hypernode-vagrant를
Claudiu Creanga

제안 해 주셔서 감사합니다. 나는 당신의 추천을 이행 할 것이며, 윈도우와 비교하여 우분투와 Mac에서 마 젠토 개발이 빠르게 이루어질 수 있다고 생각하십니까?
Jai

7

수행하려는 개발 유형에 따라 클라이언트 측 CSS 컴파일로 전환하면 개발 사이트 속도가 크게 향상됩니다.

상점> 구성> 고급> 개발자> 프론트 엔드 개발 워크 플로우

클라이언트 쪽 덜 컴파일로 전환


이 설정은 Magento 2.2에서 이동 한 것으로 보입니다. 지금 어디에서 찾을 수 있습니까?
fritzmg

1
docs.magento.com/m2/ee/user_guide/system/… 귀하의 사이트가 개발자 모드에 있는지 확인하십시오. 그렇지 않은 경우 표시되지 않습니다
bjornredemption

네, 개발자 모드에 없었습니다. thx :)
fritzmg

0

또한 개발자 모드에서 실제로 성능에 영향을 줄 때 JS / CSS의 병합이 비활성화되어 있는지 확인하십시오. 테스트는 속도가 20-30 초에서 2-3 초로 떨어질 수 있음을 보여줍니다.

개발자 모드 에서이 작업을 수행하는 것이 분명한 것처럼 보이지만 누락 된 경우 프로덕션 환경을 복사하여 개발하고 잠시 동안 놓쳤으므로 매우 느린 환경으로 이어질 수 있습니다.

최신 정보

이것은 2.1.7에서 2.1.9까지 영향을 미쳤으며 Magento 2.2.X에서 수정 된 것으로 보입니다.


이 정보는 잘못된 것 같습니다. 병합시 속도가 떨어지지 않아야합니다
ladle3000 1


@ ladle3000 또한 개발에서 병합 및 축소를 원하지 않고 CSS / JS 수정을 위해 어떤 파일을 변경해야하는지보기가 더 어려워집니다.
harri

나는 당신의 요점을 참조하십시오. 아마 2.2로 직접 마이그레이션했기 때문에 나는 결코 이것을 직면하지 않았다고 생각합니다. 어떤 버전입니까?
ladle3000

이것은 현재 2.2.0에서 수정되었지만 추가 단계처럼 보입니다. 오늘 아침에 테스트를 시도했지만 개발자 모드에서 활성화해도 여전히 비활성화 된 것 같습니다. 지금 2.2.3에 임
harri

0

다음 캐시를 비활성화하여 캐시를 지우려면 CLI 명령을 실행할 필요가 없습니다.

CONFIG
LAYOUT_GENERAL_CACHE_TAG
BLOCK_HTML
FPC

0

개발자 모드에서 magento2가 느린 주된 이유는 즉시 생성되는 수천 개의 정적 및 컴파일 된 파일과 관련이 있습니다.

이에 대한 3 가지 해결책이 있습니다.

  • NFS로 전체 디렉토리를 마운트하십시오 (SSD는 여전히 필수입니다).

  • 응용 프로그램 디렉토리 만 마운트하면 (하드웨어가 제대로 작동하더라도) 호스트 시스템의 / vendor 디렉토리에 액세스 할 수 없습니다.

  • rsync로 전체 프로젝트를 마운트하고 파일이 생성되는 디렉토리 (pub / static, generated / code 등)를 제외하십시오.

https://github.com/zepgram/magento2-fast-vm/ 에서 시도해 볼 수 있습니다.


0

Opcache는 성능을 크게 향상시킵니다. 파일 수정시 캐시 새로 고침을 피하기 위해 타임 스탬프 유효성 검사를 사용하는 것을 잊지 마십시오.

opcache.validate_timestamps = On


-4

Magento 2 store의 속도를 높이려면 다음 단계를 따르십시오.

  • 먼저 모든 시스템 및 서버 요구 사항을 충족했는지 확인하십시오.
  • Magento를 최신 버전으로 업데이트하십시오.
  • 바니시 캐시 활성화
  • 플랫 카테고리 및 제품 사용-이미지, 자바 스크립트 및 CSS 최적화
  • CDN 설정
  • 항상 버그가없는 확장 프로그램과 간단한 테마를 사용하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.