
웹 서버(apache/php)와 데이터베이스 서버(mysql)가 서로 다른 호스트와 완전히 다른 위치에 있으면 성능에 어떤 영향을 미칠까요?
편집: 데이터베이스 집약적인 웹 애플리케이션이므로 모든 페이지가 데이터베이스로 여러 번 이동합니다. 데이터베이스는 일반적으로 웹 애플리케이션의 병목 현상입니다. 일반적인 데이터베이스 상호 작용 속도와 비교할 때 네트워크 속도가 중요한지 궁금합니다.
답변1
이는 두 위치 간의 연결 속도에 따라 크게 달라집니다. 일부 회사는 데이터 센터 사이에 고속 백본을 보유하고 있지만 그 소리로 보면 두 개의 다른 회사를 보고 있는 것 같습니다. 연결은 두 회사의 통제를 벗어난 인터넷과 회선을 통해 이루어지기 때문에 이 질문에 대한 확실한 대답은 없습니다.
가능하다면 나는 그것을 피할 것입니다. 이것이 최선의 접근 방식이라고 생각한다면 Memcache와 같은 것을 조사하여 DB에서의 쿼리를 완화하세요.
답변2
웹 서버(apache/php)와 데이터베이스 서버(mysql)가 서로 다른 호스트와 완전히 다른 위치에 있으면 성능에 어떤 영향을 미칠까요?
예, 성능에 영향을 미치며 모두 부정적입니다. 이러한 시스템은 특히 두 시스템이 가동 시간과 성능을 모두 기반으로 하는 서비스 수준 계약을 통해 VPN으로 연결된 경우 작동할 수 있습니다. 단지 "클라우드"를 통과하는 경우에는 네트워크 성능의 일관성이 없으며,목이 막힐 정도로연결이나 성능이 저하되는 경우.
일반적인 데이터베이스 상호 작용 속도와 비교할 때 네트워크 속도가 중요한지 궁금합니다.
그것은 전적으로 의존할 것입니다당신의네트워크 속도와당신의데이터베이스와 애플리케이션.
고려해야 할 두 가지 네트워크 성능 측면은 대기 시간과 처리량입니다. 두 가지를 모두 고려해야 합니다.
예를 들어, 사용자는 검색어를 기다리면서 (어느 정도까지) 인내심을 갖는 경우가 많습니다. 그들은 할 것이다~ 아니다사이트를 탐색할 때 각 페이지가 로드될 때까지 인내심을 가지십시오. 둘 다 사용자 관점에서 대기 시간으로 간주되지만 첫 번째 예는 데이터베이스와 웹 서버 간의 네트워크 처리량에 의해 가중치가 부여되고 두 번째 예는 네트워크 대기 시간에 의해 가중치가 부여될 수 있습니다.
아니면 안돼! 테스트만이 알 수 있습니다.
답변3
어떤 종류의 쿼리를 하고 있나요?
CPU 속도가 제한 요소인 복잡한 쿼리를 수행하는 경우 데이터베이스에 대한 연결 속도가 10mb/s 미만이고 대기 시간이 길다는 것은 그다지 눈에 띄지 않을 것입니다. (그러나 이는 매우 복잡한 쿼리이거나 성능이 매우 낮은 시스템에서 수행되어야 합니다)
하지만,당신은 일의 속도를 높일 수 있습니다웹 서버 시스템에서 캐싱을 수행하거나, 액세스가 많은 데이터의 복사본을 보관하는 웹 서버에 로컬로 작은 mysql 복제 서버를 설정함으로써 가능합니다.
전체 데이터베이스를 원격에 배치하면 성능에 부정적인 영향을 미칠 수 있지만, 두 위치에 공동 배치하면 재해 복구 관점에서 확실히 유익한 영향을 미칩니다.
답변4
데이터베이스 서버에서 요청한 평균 데이터의 크기는 얼마이며, 둘 사이에 사용 가능한 대역폭은 얼마이며, 트래픽이 얼마나 심한가요? 심각한 병목 현상이 발생하는지 파악하는 것은 매우 쉽습니다.