2012-04-28 4 views
1

누가 나를 도울 수 있습니까?웹 사이트로드 속도 - 느린 html 로딩

magento 1.6.2.0에서 실행되는 웹샵이 있습니다. 아파치 2가 장착 된 VPS 서버. APC와 memcache, varnish cache 및 fooman speedster가 있습니다.

메인 페이지 ... acceptabel 로딩 시간을 가지고하지만 난이 카테고리 페이지에 갈 때 그것은 ... 많이 더 오래 걸립니다

그러나 반드시 대기 시간은로드하는 HTML 페이지에서 대기로 consumened한다 ... 는 스크린 샷 참조 : enter image description here

가 로딩되는 시간이 지금 주위 2~5초입니다,하지만 사이트의 바쁜가 10 ~ 15 초까지 실행할 수 있습니다 때 ... 너무 느린 .. .

내가 방화범 낀 채로 걸릴 때 가장 많이 본다. 로딩 시간이 기다리고 있습니다 ...

그럼 내 질문은 어떻게 줄일 수 있습니까?

+0

병목 현상이 무엇인지 확인하십시오. 아마도 서버 (db 액세스)의 일부가 오래 걸릴 것입니다. – PeeHaa

+0

그 개인 자원을 많이로드하는 것 같습니다. 요청 - 응답 왕복은 항상 비쌉니다. 가능하다면 모든 .js 파일을 서버 측에서 하나의 단일 파일로 가져온 다음이 하나의 새로운 큰 파일을로드하십시오. 이것은 크게 왕복 비용을 줄일 것입니다. 또한 이미지에 대한 스프라이트로 그들을로드 할 수 있습니다. – Kshitij

+0

페이지가 표시된 후에 이미지가로드됩니다. (나는 deflate 명령이 이것을한다고 생각한다). 로드하는 첫 번째 줄, html 페이지에서 대기하여 대부분의 시간이 허리에 놓입니다. 이것이 병목 현상이라고 생각합니다. (어제 DB가 최적화되었습니다. 조금 도움이되었습니다) 더 많은 해결책이 있습니까? – Ronny

답변

2

benmarks와 josh pennington이 오른쪽 라인에 있습니다. 추가 요청이 현재 산만 해지고 있기 때문에 현재 요청 수를 줄이겠다 고 말하는 사람들이 있습니다.

문제는 HTML 페이지를 생성하는 데 너무 오래 걸리고로드가 심해진다는 것입니다.

자주 최적화되지 않은 쿼리를 통해 또는 메모리가 충분하지 않아 DB로드가 너무 많습니다.

해당 페이지에서 실행되는 검색어와 해당 실적 프로필이 무엇인지 확인해야합니다. 메모리, IO, CPU 사용량.

VPS의 크기는 얼마입니까? 또한 충분한 메모리가 있는지 여부를 고려해야합니다.

또한 Apache를 실행하고 있습니까? 그렇다면 얼마나 많은 근로자들이 가지고 있나. 무슨 일이 일어날 수 있습니다 바쁜 시간에 거기에 충분하지 않은 노동자와 그들이 충분히 빨리 처리 할 수 ​​없을 수도 있습니다 그래서 바쁜 시간에 어떤 요청 대기열을 기다리는 동안 근로자가 될 수 있습니다.

+0

Magento의 memory_limit에 대해 Magento 256을 512로 지정하고 innodb 메모리 풀 크기가 증가하는지 살펴 봅니다. Magento는 2MB 메모리가 장착 된 2-4 코어 프로세서에서 가장 행복합니다.MySQL 설정을 조정하는 유용한 도구 중 하나는 [MySQL Tuner Tool] (https://github.com/rackerhacker/MySQLTuner-perl)입니다.이 도구는 MySQL 통계를 분석하고 성능 향상을위한 권장 사항을 제시합니다. 전체 페이지 캐시를 추가하면 엄청난 도움이됩니다. 우리는 지난 주에 프론트 엔드에서 눈에 띄는 속도 저하없이 650 명 이상의 사용자를 때리고있었습니다. 모든 하드웨어 리소스와 캐싱입니다. Magento는 허용하는 리소스만큼 빠르게 실행됩니다. –

+0

안녕하십니까, AMD Opteron (TM) 프로세서 6128 서버 (1 코어)에 2GB RAM (1gb 보증)이 있습니다. 충분하다고 생각하십니까? 더 자세히 apache2를 실행하고 있습니다. 얼마나 많은 근로자가 있는지 모르겠다. (어디에서 이걸 찾을 수 있는가?) – Ronny

+0

unfortunatly mysqltuner를 실행하는 동안 오류가 발생한다 ... – Ronny

0

페이지가로드 된 후 모든 이미지 (고해상도)를로드하는 자바 스크립트 코드를 구현하십시오. 페이지가로드

function init() { 
...function to call all the images threw ajax 
} 
window.onload = init; 

잘 나는 이미지를로드 할 수있는 최소한의 시간을 마련하는 코드 아래에 주어진 밖으로 시도 아약스 전화를 던진 후 그냥 이미지를 얻을하려고합니다. 나는 일반적인 DIV 이름으로 모든 이미지를 넣어 숨겨진 자신의 가시성을 설정 ...

$(document).ready(function() { 
    $("#img").css('visibility','visible') //img is div for all the images on the webpage 
}); 

하지만 아약스 호출은 나에게 모습을 제공하고 이미지를 얻을 생각합니다.

+0

그의 문제는 요청 수가 아니라 서버 측 문제입니다. –

+0

죄송합니다. 잘못되었습니다. 내 잘못. – ashutosh

1

데이터와 관련된 문제 일 가능성이 큽니다. 제품이없는 카테고리를 만들고 찾아보고 응답 시간을 기록하십시오. 범주 데이터 문제인지 여부를 나타냅니다. 프로파일 러를 사용하여 범인을 좁힐 수 있습니다. 관리> 시스템> 구성> 고급 : 개발자에서 은 개발자 제한 IP를 사용자의 IP으로 설정하고 프로파일 러를 활성화합니다. 그런 다음 index.php에서 Varien_Profiler :: enable()의 주석 처리를 제거합니다.

정상적인 응답 본문 뒤에 출력이 표시되어야합니다. 그 출력을 추적하여 중간에 어딘가에서 성능이 떨어지는 영역을 찾을 수 있습니다.

+0

Magento의 성능 문제를 해결하는 데 실제로 가장 좋은 대답입니다. Tks는 benmarks를 추적합니다. – medina

+0

[AOE Profiler] (http://www.fabrizio-branca.de/magento-profiler.html)를 다운로드하면 정말 행복 할 것입니다. – benmarks

1

내가해야 할 첫 번째 일은 Magento 백서입니다. 최고의 성능을 위해 PHP, Apache 및 MySQL을 finetune하는 방법에 대한 많은 정보를 제공합니다.

http://www.magentocommerce.com/whitepaper

나는 아파치 하나에서 MySQL 서버를 분리하는 것은 다른 세계를 만들 수 있다고합니다. Magento는 DB 서버가 허용되는만큼 많은 메모리를 사용하도록 최적화되지 않은 경우 매우 느린 것으로 볼 수있는 Innodb를 매우 많이 사용합니다.

+0

또한 webpagetest.org에 가서 속도 테스트를 해보십시오. Apache에서 mod_expires를 사용하도록 설정하면 모든 js 파일을 한 번만 다운로드하면됩니다. 그들은 당신에게 더 많은 제안을 할 것입니다. 코드를 수정하기 전에 먼저이 작업을 수행합니다. 내 경험에 비추어 볼 때 코드를 너무 많이 수정하기 전에 서버 서비스를 최대 성능으로 실행해야합니다. 그렇게하면 코드를 빨리 작성하기 전에 서버가 모든 실린더에서 실행되고 있음을 알 수 있습니다. –

0

서버에서 무거울 수있는 꽤 복잡한 계층 형 탐색 설정이 있습니다.

전문가 Magento 웹 호스트로 이동 한 경험을 통해 세상의 차이를 만들 수 있습니다 ... 나에게 그랬습니다. 회사를 언급해야한다고 확신 할 수 없으므로 누군가는 괜찮다고 말하지 않으면 Magento 벤치 마크를위한 Google 검색을 시작해야합니다.

세 가지 서버 방식을 사용하면 큰 차이가 있습니다.

+0

안녕 matthew, 우리는 고객을위한 복잡한 layerd 탐색이 필요하다 ... 이제 VPS 서버가있다. 1 코어 및 2GB 램 (1 gb 보증). 하지만 현재는 빠른 서버를 찾고 있습니다. 당신은 무엇을 추천 할 수 있습니까? 현재 ISP의 다음 단계는 4GB RAM (2GB) 또는 2GB 코어 (6GB RAM) (3GB)입니다. 그렇지 않으면 전용 서버 ... 트리 서버 접근 방식이란 무엇입니까? – Ronny

+0

안녕하세요 Ronny 저는 dx3webs.com을 사용합니다. 가장 빠른 하드웨어를 사용하는 것이 정답은 아닙니다. MySql/Apache/PHP가 그 목적에 맞게 최적화 된 다른 상자에있는 것이 가장 좋습니다. 나는 magento 설정에서 nginx가 그들 중 하나를위한 더 나은 환경을 제공한다고 가정하고 있지만 어느 것이 기억이 나지 않는 것을 안다. 어쨌든 dx3webs는 마법사 전문가이므로 가능한 한 잘 조언 할 수 있습니다. 저기 다른 전문가 마술 주최자도 있습니다 그래서 주위에 쇼핑을 할 수 있습니다 –

1

정말 대단한 개선점은 Apache를 Nginx로 대체하는 것입니다. Nginx를 사용하여 속도와 안정성이 크게 향상되었습니다. MYSQL 튜너가 테이블을 최적화하고, innodb_memory_pool_size를 높이며, max_heap_table_size 및 tmp_table_size를 늘리는 것입니다. 여유가 있다면 서버를 4GB까지 늘리면 MySQL과 PHP에 더 많은 메모리를 제공 할 수 있습니다. Gzip은 또한 첫 번째 바이트까지의 시간에 영향을 미치며 단 하나의 프로세서로 약간 느려질 수도 있습니다. Cloudflare를 캐싱의 대체/추가로 조사 할 수 있습니다. 마지막으로 카탈로그 페이지에는 많은 이미지가있는 경향이 있습니다. 그것들이 최적화되어 있는지 확인하고 (가능하다면 ImageOptim을 사용한다) gif를 png로 바꾼다. 계속 진행해야 할 것이 많지만, 이것으로 시작하십시오.