Google 애플리케이션에 적합한 GeoIP 데이터베이스를 찾으려고 노력했으며 MaxMind City가 아마도 최고라고 말할 수 있습니다. (틀 렸지만 알고있다!). 현재 영국에서는 정확하지 않은 무료 버전을 시험 중이지만 테스트 목적으로 사용됩니다.캐싱 MaxMind RAM + 서버 성능의 도시 바인더 리 데이터베이스
우리의 응용 프로그램은 PHP로 작성 결국 우리는 들어오는 트래픽을 많이 낳게 될 것이다 :
그래서 다시 주제에 점점. GeoIP 데이터베이스를 사용하는 이유는 모든 페이지로드시 도시, 지역, 국가를 표시하고 특정 방문자의 데이터를 mysql 데이터베이스에 저장해야하기 때문입니다. 그래서 모든 페이지 요청에 바이너리 데이터를 로딩하면 서버가 많은 RAM을 소비하게되어 처리 속도가 빨라질 것이라고 생각하기 시작했습니다. 그래서 RAM 안에 캐시 할 수 있는지 궁금합니다. PHP가인데, 26Mb이기 때문에 (많은 경우는 그렇지 않을 수도 있습니다.), 여전히 수천 페이지의 요청을 처리하기 시작했기 때문에 궁금합니다. 두 번째로는 성능 저하를 피할 수 있습니다.서버 :
프로세서 : 16 헤르쯔 (8 × 2 헤르쯔)
RAM : 16,384메가바이트
HDD : 4백기가바이트
아파치 + Nginx에 + 니스 PHP5 .3, MySQL5.1
우리는 대규모 앱 개발에 새로운 경험이 있으므로 개선 방법에 대한 제안이 있으면 일반적으로 성능을 향상 시키거나 성능 향상과 관련된 다른 팁을 알려주십시오.
감사합니다.
니스! 우리는 몇 가지 테스트를 해보 겠지만, mysql이 캐시하도록하는 것은 좋은 생각이다. 감사! 왜 우리가 전에 그것을 시도하는 것을 몰랐는지 모르겠다. – Ignas
성능 향상을 위해 우리는'ip2location' 테이블에 대한 조작을했다. "문제"는 하나의 클래스 -A 그물보다 큰 일부 IP 블록이 있다는 것입니다. 그래서 우리는이 블록들을이 블록 (아마도이 테이블에서 5 또는 6 개의 엔트리들)을 여러 블록으로 나눈 다음이 테이블에 IP의 첫 번째 옥텟을 포함하는 새로운 열을 추가했습니다. (따라서이 'unsigned tinyint' 열의 값은 0에서 255). 이 추가 열에 대한 색인이 있으며이 열은'WHERE' 절에서 참조됩니다. 그것은 매우 효율적입니다. – rabudde