我一直在尝试为我们的应用程序找到合适的 GeoIP 数据库,据我所知 MaxMind City 可能是最好的(如果我错了,请告诉我!)。我目前正在试用在英国并不准确的免费版本,但它可以用于测试目的。
那么回到主题:
我们的应用程序是用 PHP 编写的,最终我们将获得大量传入流量。我们将使用 GeoIP 数据库的原因是因为我们需要在每次页面加载时显示城市、地区、国家,并将特定访问者的数据保存到 mysql 数据库中。所以我开始认为在每个页面请求上加载二进制数据会导致服务器消耗大量 RAM 并会提高处理速度。这就是为什么我想知道是否有可能将它缓存在 RAM 中并使用 PHP 来处理它,因为它是 26Mb(我知道它可能看起来并不多),但是当我们开始每秒收到数千个页面请求时,这仍然是将导致我们显然希望避免的性能下降。
服务器:
处理器:16 GHz (8 x 2 GHz)
内存:16384 MB
硬盘:400 GB
Apache + Nginx + Varnish,PHP5.3,MySQL5.1
我们对大规模应用程序开发还很陌生,所以如果您对如何提高总体性能有任何建议,或者有任何其他与提高我们案例的性能相关的提示,请告诉我。
谢谢!