我正在为客户端设置Web服务器。他们将使用我正在构建的Web应用程序(PHP / LAMP)。服务器将在本地网络中。在同一台服务器上也会有一个MySQL数据库。服务器上的负载只有20-25个并发用户,但正常运行时间和性能仍然非常重要。
应用程序本身将使用后端CMS(TBD)使用前端的JQuery和后端的PHP向用户显示内容。
所以,我的问题是:在CPU,缓存和内存(大小/类型)方面是否有一套良好的服务器系统要求,以提供相对便宜的解决方案,但仍能提供高质量的性能。
答案 0 :(得分:3)
说实话,硬件不是最重要的因素,它是编码。如果您正确且最佳地开发应用程序,那么您应该能够在运行1ghz,512mb ram和5200rpm硬盘的计算机上同时运行至少100个用户。
我建议使用VMWare创建虚拟机并将MySQL服务器与Web服务器分开。这也使您能够复制,迁移或升级计算机,而无需重新配置和重新安装。
此外,在没有GUI的操作系统上运行LAMP配置(Debian,Ubuntu,Fedora等,没有安装X-Window)。这些是服务器,它们不应该浪费显示漂亮窗口的资源。
最后,就像Trent所说,RAID配置是一个好主意,但RAID不是备份解决方案。如果您有两个相同的硬盘驱动器,很可能如果一个硬盘驱动器发生故障,另一个硬盘驱动器很快就会发生故障。始终有备份解决方案(NAS,磁带,DVD,软盘等)。
答案 1 :(得分:1)
确保你拥有2个所有东西... 2个电源2个硬盘驱动器(raid 1)或更多raid 5.根据正常运行时间的重要性,您甚至可能希望拥有整个故障转移服务器。至于性能,你还没有给我们足够的信息......查询在数据库中有多少数据。
答案 2 :(得分:1)
如果不了解将在服务器上运行的应用程序的详细信息,任何特定的建议(即X GB的RAM,带Z缓存的Y处理器)将毫无意义。也就是说,我强烈建议不要吝啬RAM,特别是对于数据库驱动的应用程序 - 你可以保留在RAM而不打硬盘的数据越多,你的性能就越好。但是,作为开发人员,永远不要忘记丰富的硬件资源无法替代正确的索引和代码优化!
我还想在这里回应一些其他建议 - RAID你的驱动器(过去我更喜欢RAID 10用于数据库服务器),获得某种离线备份(磁带,DVD-R,USB驱动器等) 。)并确保您将备份保留在异地(如果发生洪水,火灾或其他物理灾难)。并且不要忘记定期测试从备份中恢复 - 没有比发现备份在时间太晚时不起作用更糟糕的感觉。