2011-12-09 4 views
0

현재 내 서버 중 하나에서 성능이 저하되고 있습니다. 그것은 PHP와 MySQL로 apache2 서버를 돌리고 있습니다. MySQL 서버는 웹 서버와 동일한 컴퓨터에서 호스팅됩니다.MySQL과 결합 된 PHP가 매우 느립니다.

MySQL 쿼리가 포함 된 PHP 파일을 요청할 때마다 페이지가 표시되는 데 약 24 초가 걸립니다. 페이지를 요청하는 동안 apache2의 CPU 사용량이 최대 11 % (!)로 늘어났습니다. 이는 일주일 전에 사용했던 것과 비교하면 훨씬 큽니다.

MySQL 검색어가없는 PHP 파일이나 PHP 파일이 즉시 표시됩니다.

MySQL 쿼리가 포함 된 스크립트에서 어떤 문제가 발생할 수 있습니까? 아파치 오류 로그에서 유용한 정보를 찾을 수 없습니다.

+0

당신은 MySQL 로그에 액세스 할 수 있습니까? – konsolenfreddy

+0

전체 서버에 대한 액세스 권한이 있습니다. 불행히도 데비안에서 로그가 저장되는 곳이 확실하지 않습니다./var/log/mysql 디렉토리는 비어 있으므로 다른 곳에 저장한다고 가정합니다. 그리고 /var/log/mysql.err 및 mysql.log 파일은 비어 있습니다. – beta

+0

쿼리 크기가 응답 시간에 전혀 영향을 줍니까? 즉, 어떤 테이블도 건드리지 않는 단순한 ID를 쓰면 응답하는데 30 분이 소요됩니까? –

답변

1

show full processlist; <-- to show what are the current SQL 

확인하려면 어디 로그 파일 : -

show variables like '%log%'; <-- to show mysql variables 

쿼리 벤치 마크/테스트를 수행 할 때, 항상 사용, 쿼리 캐시를 해제 기억 : -

set session query_cache_type=off; 
+0

답변 해 주셔서 감사합니다. show full processlist 두 행을 반환 - 분명히 processlist 쿼리 자체 및 광산 사이트에서 쿼리 : | 59 | 루트 | localhost | db1 | 수면 | 20 | | NULL | 시간 : 20 꽤 높은 것 같습니다. – beta

+0

sleep이 sleep zzzzZZZZ ... 일부 느린 페이지를 열고 비교를 위해 전체 processlist를 동시에 표시해야합니다. – ajreal

+0

글쎄,이 수면 항목이 사라진 후 마침내 페이지가로드되는 것 같습니다. 나는 wordpress blog에서 더 느린 페이지로 그것을 테스트했다. – beta

1

데이터베이스 쿼리는 실행하는 데 시간이 걸리고 각 쿼리는 하나 이상의 파일을 열어야합니다. 파일 액세스가 느립니다.

하드 드라이브 대신 RAM에서 데이터베이스를 실행하여 요청 속도를 높일 수는 있지만 가능한 한 많은 양의 데이터를 캐시 할 가능성이 높습니다. MySQL의 콘솔에서

+0

답장을 보내 주셔서 감사합니다.하지만 사이트는 일주일 전에 정말 빠르게 돌아 왔습니다. 갑자기 모든 것이 천천히 일어나기 때문에 어떤 종류의 타임 아웃이 발생했다고 가정합니까? 나는 배경 지식이 부족합니다. – beta

1

일부 cms logging 기능과 exce 때문에 mysql 데이터베이스가 2GB (또는 4GB)보다 큰지 확인할 수 있습니다 파일 크기 제한

+0

데이터베이스 크기를 얻기 위해 검색을 봤는데 약 2.1MB 정도 밖에 안되는 것 같습니다. – beta