在两个硬盘驱动器上运行一个Web应用程序,哪种方法最好?

我有两个硬盘驱动器的专用服务器(运行Windows 2008标准版)。 我有一个Web应用程序(用ASP.NET编写)应该在这个服务器上运行,Web应用程序使用MySQL也应该在同一台服务器上运行。 也将有用户照片驻留在应用程序文件夹相同的文件夹。 大多数访问将是MySQL和用户的照片。

那么,为应用程序和MySQL数据文件使用第二个驱动器会更好,这样我就可以离开OS的第一个驱动器

要么

使用Web应用程序的第一个驱动器(也有OS文件)和MySQL的第二个驱动器,以便降低访问时间。

哪种方法应该会产生更好的性能

非常感谢

除非你有less量的RAM,否则你的应用程序托pipe的Web服务器的部分内存密集(或者你期望有许多并发的连接,所以小的Web服务器进程会增加到很大的数量),那么唯一的安排就是要施加显着的I / O负载就是数据库。

给它自己的驱动器可能会提高整体布局的性能,但也可以考虑将两个驱动器用作RAID1arrays来提高容错能力,从而提高可用性(这并不排除备份的需要)。

如果你有两个单独的驱动器,尽pipe有几件事情可以提高数据库服务器的性能:

  1. 如果你经常备份(如果你不这样做,那么为什么不?),备份到数据库不在的驱动器上。 这将加速备份过程,并最大限度地减less它对正在运行的应用程序的性能差异
  2. 如果mysql允许你像MSSQL那样从数据文件中分离它的事务日志,那么把日志和数据放在不同的驱动器上可以提高性能,如果你的数据库看到很多写操作的话

我build议你去尝试和真正的configuration:

  • 一个OS分区
  • DB,应用程序,用户映像等的第二个分区

原因如下:

  • 你的操作系统可能会崩溃,但是你的数据在理论上将与任何操作系统的灾难分开。
  • 您可以按照您认为合适的方式单独备份每个分区。
  • 一个分区的RESTORE时间比在一个磁盘/分区上放置所有的蛋更快。
  • 如果出现单个磁盘故障,您将看不到停机时间。

数据库访问不一定会更高性能,但其核心是经典的性能与可靠性之间的平衡,使用2个磁盘。

目前还不清楚您的磁盘是否具有相同的容量。 考虑一个RAID 1configuration,其中磁盘被分区为2个分区。

其他performance措施:

  • 考虑ASP.NET和IIS内核模式caching策略

对于这种types的问题,总是有一个争论,那就是首选的方法,但我的build议是将应用程序和MySQL移到第二个硬盘。

我也会用第二个选项,但是我们有一次这样的select不好的经验,因为当我们必须改变我们的ISP时,新的ISP没有给我们提供两个驱动器,他们只有单个驱动器机器,所以我们有麻烦重新组织一切。 然而,大多数机器现在都可以使用SATA多重连接器,所以现在不再有问题了,但是有必要考虑迁移计划和增长计划。 我们的问题现在已经7岁了,但是我们有计划。

由于硬件RAID控制器的成本对于这个项目来说太高,我认为这是一个公平的猜测,这不是关键任务。 在这种情况下,服务器上的负载可能不足以certificate对性能的痴迷。

您每天有多less页面点击? 你有没有真正衡量的性能特点呢? 优化的黄金法则是“衡量,然后做”。

在担心性能问题之前,我会使用第二块硬盘作为RAID-1镜像。