2016-12-14 4 views
4

에서보다 느립니다. 따라서 Google App Engine에서 Google Cloud SQL에 연결하려고 시도했습니다. 모든 것이 작동하지만 대기 시간이 매우 길다. 간단한 선택 쿼리는 약 1.3 초 걸립니다. 그러나 localhost에서 연결할 때 훨씬 짧은 시간이 걸립니다. 연결의 차이는 다음과 같다 :App Engine에서 Cloud SQL에 연결하는 것이 localhost

앱 엔진 YAML에

내가 사용

$servername = getenv('MYSQL_DSN'); 
$username = getenv('MYSQL_USER'); 
$password = getenv('MYSQL_PASSWORD'); 
$dbname = getenv('MYSQL_DATABASE'); 
$connection = new mysqli(null, $username, $password, $dbname, null, $servername); 

로컬 호스트에서 클라우드 SQL에 연결하는 앱 엔진 PHP에서

MYSQL_DSN: /cloudsql/instanceName 
MYSQL_USER: user 
MYSQL_PASSWORD: password 
MYSQL_DATABASE: dbname 

:

$servername = "ip.address"; 
$username = getenv('MYSQL_USER'); 
$password = getenv('MYSQL_PASSWORD'); 
$dbname = getenv('MYSQL_DATABASE'); 
$connection = new mysqli($servername, $username, $password, $dbname); 

localhost에서 연결할 때 내 컴퓨터의 IP 주소를 Cloud SQL das에 인증했습니다. hboard, 그래서 직접 IP 주소를 통해 연결하는 것은 문제가되지 않습니다. 이제 내 문제는 localhost에서 PHP를 실행하여 Cloud SQL에 연결할 때 대기 시간이 App Engine에서 연결할 때보 다 낮다는 것입니다. 왜 그리고 어떻게하면이 문제를 해결할 수 있습니까?

+0

대기 시간은 어떻게 측정합니까? –

+0

@danCornilescu 앱 엔진 대시 보드에 대기 시간이 표시되므로 흥미로운 점은 클라우드 SQL에 허용 된 네트워크를 0.0.0.0.0으로 설정하고 Cloud SQL IP 주소를 통해 직접 연결하면 훨씬 빠릅니다. 즉, App Engine이 Cloud SQL의 보안 검사에 연결하면 연결이 느려지 게됩니다. :/어떤 생각이이 문제를 해결하는 방법? – andy

+0

1 세대 또는 2 세대 Cloud SQL 인스턴스입니까? 응용 프로그램 및/또는 SQL 인스턴스가있는 영역은 무엇입니까? 대기 시간이 일관되게 길어 지거나 간헐적입니까? 실제로 SQL 인스턴스의 대기 시간을 측정하는 방법은 무엇입니까? App Engine 대시 보드는 애플리케이션의 대기 시간을 제공 할 수 있지만 특히 Cloud SQL 인스턴스의 대기 시간은 제공하지 않습니다. 응용 프로그램에 로그를 추가하거나 [Stackdriver Trace] (https://cloud.google.com/trace/docs/viewing-details)를 사용하여 응용 프로그램과 SQL 인스턴스 간의 통신 대기 시간을 확인할 수 있습니다. – Nicholas

답변

2

이 정보는 asia-northeast1 영역의 Cloud SQL 인스턴스에 영향을주는 알려진 문제입니다. Cloud SQL 공개 이슈 트래커에서 Issue 197 아래로 추적됩니다. 적절한 관심을 얻으려면 문제에 별표를 표시하십시오.

근본적인 문제는 2016 년에 시작한 일본 (아시아 - 북동부) 작업을 확장하는 것과 관련이 있습니다. 현재로서는 이상적인 해결 방법이없는 것 같습니다. 내 유일한 권장 사항은 asia-northeast1 외부에서 Cloud SQL 인스턴스를 이동하는 것입니다. 상황에 따라 이동이 가능한 경우 asia-east1 (대만) 또는 가까운 지역을 사용하여 대기 시간을 줄일 수 있습니다.

+0

나는 동일한 문제에 직면하고 있으며 귀하의 조언에 따라 asia-east1로 전환했습니다. 그러나 대기 시간은 여전히 ​​불행히도 매우 느립니다. Google에서이 문제를 해결할 때까지 AWS RDS 사용에 대해 생각해 볼 필요가 있습니다. – KinoP

+0

비 아시아 지역을 사용할 수 없다고 생각합니까? – Nicholas

+0

또한 동일한 네트워크에있는 Compute Engine 인스턴스의 유연한 환경과 MySQL에 응용 프로그램을 배포 할 수 있습니다. 그러면 내부 IP를 사용하여 통신 할 수 있습니다. 이 테스트를 직접 해보지 않았기 때문에 대기 시간이 현저하게 줄어든 지 확실하지 않습니다. – Nicholas

관련 문제