1.一块磁盘单独存放tempdb文件,并将tempdb分64个数据文件(按CPU核数),一个日志文件(有时候tempdb会达到几百G,因为大量关联、临时表和排序会在tempdb中进行,此处用不用2块磁盘做raid0?)。
绝对不要这样做,过多文件会导致上下文切换开销严重,按照某些MVP和国外专家的建议,先用4个数据文件,如果不够,再加4个,也就是4个4个加,每个设大一点其实足够了。tempdb可以用RAID 0,加快读写速度,而且这个库数据不重要。性能才是总要的。
2.一块磁盘单独存放数据库日志文件。
日志文件很重要,最好做个RAID 10,这个在提供冗余前提下,能够最大化写操作,日志最重要是写操作。
3.将其余的8块硬盘做raid5,放操作系统、应用程序、数据库数据文件(数据文件会达到几T)。
应用程序别放同一个服务器,数据文件放到RAID 5上,提高读的性能,如果性能足够高,其实是否并行读取并不非常重要,操作系统文件也最好放到上面,毕竟操作系统的读写没有数据库的频繁。
绝对不要这样做,过多文件会导致上下文切换开销严重,按照某些MVP和国外专家的建议,先用4个数据文件,如果不够,再加4个,也就是4个4个加,每个设大一点其实足够了。tempdb可以用RAID 0,加快读写速度,而且这个库数据不重要。性能才是总要的。
2.一块磁盘单独存放数据库日志文件。
日志文件很重要,最好做个RAID 10,这个在提供冗余前提下,能够最大化写操作,日志最重要是写操作。
3.将其余的8块硬盘做raid5,放操作系统、应用程序、数据库数据文件(数据文件会达到几T)。
应用程序别放同一个服务器,数据文件放到RAID 5上,提高读的性能,如果性能足够高,其实是否并行读取并不非常重要,操作系统文件也最好放到上面,毕竟操作系统的读写没有数据库的频繁。
tempdb放在RAID0上面,实践中发现效果很不错。
与RAID5的读比RAID1慢,RAID5的写跟RAID1差不多的速度(都是同时写2次,RAID1写的是扇区,RAID5写的是消耗CPU之后得到的校验码)。
2.其他硬盘做 RAID10 存储其他数据了..
1-2 --> raid1 --> 安装windows + 部分系统数据库: master,model,msdb ..
3-8 --> raid5 --> 系统数据库tempdb + 用户数据库之数据文件(.mdf).
9-10 --> raid1 --> 用户数据库之日志文件(.ldf).
如果是专用数据库机器,那么OS、TEMPDB、MASTER等可以放在一个RAID1上
日志RAID1
剩下的如果磁盘空间足够,也建议RAID1,而不是RAID5
再细一点,如果一些表的更新频率高,那么将其拆分到两个(多个)独立的RAID上,也是拆分IO的效果
或者将数据与索引分离到不同的RAID上,也是拆分IO的效果
重点是系统设计要有效率,否则可能一个简单的查询可能都累死机器一阵子真是负荷较大的应用,楼主要玩转,应该比较吃力
即使别人提供很多技巧或答案
毕竟所涉及的基础知识太多了点
1.我在微软的官方建议中(http://msdn.microsoft.com/zh-cn/library/ms175527.aspx)看到的是建议是为服务器中的每一个 CPU 创建一个tempdb的数据文件,不知道官方说的是不是合理;还有就是先设置4个文件的依据是什么,为什么是4个?
2.微软的建议还有把数据文件也分多个放在不同的物理磁盘上,可以避免I/O竞争,提高并发性,但是做我raid之后,在window中就只能看到一个磁盘,怎么把多个文件放在不同的磁盘中的?还是做的raid之后就一个数据文件就行了?如果放多个的话几个合适呢?
1.将多个数据文件放在多个磁盘做的raid下和分别放在不同的物理磁盘上是不是有什么区别?
2.一台电脑是否可以做多个raid,并且有的磁盘不做raid用。
服务器系统raid0,
tempdb raid0,
日志raid 10
数据库raid 10,
总共需要12块硬盘。
10块硬盘明显不够做。
1.我在微软的官方建议中(http://msdn.microsoft.com/zh-cn/library/ms175527.aspx)看到的是建议是为服务器中的每一个 CPU 创建一个tempdb的数据文件,不知道官方说的是不是合理;还有就是先设置4个文件的依据是什么,为什么是4个?
2.微软的建议还有把数据文件也分多个放在不同的物理磁盘上,可以避免I/O竞争,提高并发性,但是做我raid之后,在window中就只能看到一个磁盘,怎么把多个文件放在不同的磁盘中的?还是做的raid之后就一个数据文件就行了?如果放多个的话几个合适呢?加班加疯了,没看到你提问,
第一个问题:4个貌似是“最佳实践”,但是过多会引起上下文切换的问题,CPU管理难度增加,
第二个问题:微软的那个建议是在非RAID情况下的,如果你做了RAID,其实不用过于在意这些,数据文件放到RAID5上即可。当然要监控一下。
第三个问题:如果你的RAID有几个,而且性能相同,可以分开来放。
1.我在微软的官方建议中(http://msdn.microsoft.com/zh-cn/library/ms175527.aspx)看到的是建议是为服务器中的每一个 CPU 创建一个tempdb的数据文件,不知道官方说的是不是合理;还有就是先设置4个文件的依据是什么,为什么是4个?
2.微软的建议还有把数据文件也分多个放在不同的物理磁盘上,可以避免I/O竞争,提高并发性,但是做我raid之后,在window中就只能看到一个磁盘,怎么把多个文件放在不同的磁盘中的?还是做的raid之后就一个数据文件就行了?如果放多个的话几个合适呢?加班加疯了,没看到你提问,
第一个问题:4个貌似是“最佳实践”,但是过多会引起上下文切换的问题,CPU管理难度增加,
第二个问题:微软的那个建议是在非RAID情况下的,如果你做了RAID,其实不用过于在意这些,数据文件放到RAID5上即可。当然要监控一下。
第三个问题:如果你的RAID有几个,而且性能相同,可以分开来放。
您的意思是如果做了RAID的话,就可以只分一个数据文件(.mdf/.ndf),但是一个文件好像不能完全利用CPU的性能,多个文件的话,似乎可以多线程并发处理;
如果不做RAID是不是可以把多个文件放在多个物理磁盘上?
那把一个文件放在RAID上,和把多个文件分别放在没做raid的多个磁盘上那个效率更高呢?
2、不过RAID的话,可以把文件放在独立的物理磁盘,如果你的RAID性能做得好,不拆文件也行,不过最好测试一下,我以前做银行系统,文件单独一个盘,效果还是不行,但是做了RAID之后,由于盘数量有限,被迫把文件全部迁到RAID5上,但是性能却明显快了很多谢谢版主回复
1.我在微软的官方建议中(http://msdn.microsoft.com/zh-cn/library/ms175527.aspx)看到的是建议是为服务器中的每一个 CPU 创建一个tempdb的数据文件,不知道官方说的是不是合理;还有就是先设置4个文件的依据是什么,为什么是4个?
2.微软的建议还有把数据文件也分多个放在不同的物理磁盘上,可以避免I/O竞争,提高并发性,但是做我raid之后,在window中就只能看到一个磁盘,怎么把多个文件放在不同的磁盘中的?还是做的raid之后就一个数据文件就行了?如果放多个的话几个合适呢?加班加疯了,没看到你提问,
第一个问题:4个貌似是“最佳实践”,但是过多会引起上下文切换的问题,CPU管理难度增加,
第二个问题:微软的那个建议是在非RAID情况下的,如果你做了RAID,其实不用过于在意这些,数据文件放到RAID5上即可。当然要监控一下。
第三个问题:如果你的RAID有几个,而且性能相同,可以分开来放。
您的意思是如果做了RAID的话,就可以只分一个数据文件(.mdf/.ndf),但是一个文件好像不能完全利用CPU的性能,多个文件的话,似乎可以多线程并发处理;
如果不做RAID是不是可以把多个文件放在多个物理磁盘上?
那把一个文件放在RAID上,和把多个文件分别放在没做raid的多个磁盘上那个效率更高呢?
谢谢版主回复
1.我在微软的官方建议中(http://msdn.microsoft.com/zh-cn/library/ms175527.aspx)看到的是建议是为服务器中的每一个 CPU 创建一个tempdb的数据文件,不知道官方说的是不是合理;还有就是先设置4个文件的依据是什么,为什么是4个?
2.微软的建议还有把数据文件也分多个放在不同的物理磁盘上,可以避免I/O竞争,提高并发性,但是做我raid之后,在window中就只能看到一个磁盘,怎么把多个文件放在不同的磁盘中的?还是做的raid之后就一个数据文件就行了?如果放多个的话几个合适呢?加班加疯了,没看到你提问,
第一个问题:4个貌似是“最佳实践”,但是过多会引起上下文切换的问题,CPU管理难度增加,
第二个问题:微软的那个建议是在非RAID情况下的,如果你做了RAID,其实不用过于在意这些,数据文件放到RAID5上即可。当然要监控一下。
第三个问题:如果你的RAID有几个,而且性能相同,可以分开来放。
您的意思是如果做了RAID的话,就可以只分一个数据文件(.mdf/.ndf),但是一个文件好像不能完全利用CPU的性能,多个文件的话,似乎可以多线程并发处理;
如果不做RAID是不是可以把多个文件放在多个物理磁盘上?
那把一个文件放在RAID上,和把多个文件分别放在没做raid的多个磁盘上那个效率更高呢?
1.我在微软的官方建议中(http://msdn.microsoft.com/zh-cn/library/ms175527.aspx)看到的是建议是为服务器中的每一个 CPU 创建一个tempdb的数据文件,不知道官方说的是不是合理;还有就是先设置4个文件的依据是什么,为什么是4个?
2.微软的建议还有把数据文件也分多个放在不同的物理磁盘上,可以避免I/O竞争,提高并发性,但是做我raid之后,在window中就只能看到一个磁盘,怎么把多个文件放在不同的磁盘中的?还是做的raid之后就一个数据文件就行了?如果放多个的话几个合适呢?加班加疯了,没看到你提问,
第一个问题:4个貌似是“最佳实践”,但是过多会引起上下文切换的问题,CPU管理难度增加,
第二个问题:微软的那个建议是在非RAID情况下的,如果你做了RAID,其实不用过于在意这些,数据文件放到RAID5上即可。当然要监控一下。
第三个问题:如果你的RAID有几个,而且性能相同,可以分开来放。
您的意思是如果做了RAID的话,就可以只分一个数据文件(.mdf/.ndf),但是一个文件好像不能完全利用CPU的性能,多个文件的话,似乎可以多线程并发处理;
如果不做RAID是不是可以把多个文件放在多个物理磁盘上?
那把一个文件放在RAID上,和把多个文件分别放在没做raid的多个磁盘上那个效率更高呢?这个限制应该要看版本,因为我公司的数据库超百G一个文件,放在磁盘也没啥问题