MongoDB服务器相关选型和基础优化参考
Jun 07, 2016 pm 05:41 PM好久没上文章了...先上篇一先!硬盘选择1.硬盘有条件尽量选择SAS盘,不差钱的可以选择SSD、funsion-io之类的,再者。也可以根据当初应用环境选择性的考虑下SATA
好久没上文章了...先上篇一先!
硬盘选择
1. 硬盘有条件尽量选择SAS盘,不差钱的可以选择SSD、funsion-io之类的,再者。也可以根据当初应用环境选择性的考虑下SATA盘
2. RAID方面可以选择RAID10和RAID5,推荐选用RAID10,香港空间,它即有速度也相对安全,RAID5的话适合读比较多的业务。但是还是推荐用RAID10,用空间换取时间。RAID5在一块盘出现问题的情况下性能极速下降!
3. RAID卡的选择,尽量选用大牌子的RAID卡,这样减少出现各种各样的RAID卡故障。还有就是RAID缓存要选择相对比较大的!
内存选择
现在内存是白菜价的时代,现在一般笔记本上都到16G了,没有哪个公司会在内存上纠结吧,理论上任何服务器是内存越大越好,尤其是数据库服务器,至少16G以上。
CPU选择
选用64位的CPU这个不用说了,服务器空间,再者就是缓存要大,CPU要多核心多线程,但是有些数据库对多核CPU要求不是很严格,比如:MongoDB,MongoDB对内存要求很高!MySQL的InnoDB引擎则对CPU利用率比较高,尽量选用强悍点的CPU!
系统选择
1. 系统肯定是64位系统,可以是linux也可以是unix,linux有很多选择,网站空间,常用的就是CentOS Ubuntu竺,Unix就可以选择开源的FreeBSD
2. 内核选择,推荐2.6以上的内核,也不用太高
3. 文件系统的选择,有以下几种选择:EXT3/EXT4/XFS,EXT4和XFS更适合数据库,其实XFS更适合作为MySQL数据库的文件系统,可以在EXT3的基础上性能增加1.5倍。
其它方面:
网卡至少选用千M,万M更好,没万M也可以做bonding.
总之,针对不同的应用选择不的机器类型,尤其作为数据,数据库层尽量选用相对好的服务器。
下面以MongoDB服务器的硬件选择作个简单的说明:
1. 相关硬件级别
² 网络最低为千M网卡,有万M更好!
² 大内存(可以根据索引大小来设置内存,原则上是内存越大越好。)
² 双核高速CPU,mongodb实例没必要搞多核,因为mongodb对CPU多核支持不是很好,但是作为mongos路由服务器对CPU资源消耗比较多!
存放数据以隔离io的频繁操作。
2. 系统级别
² 采用64位系统支持更多的内存和让支持更大的存储数据
² 禁止文件系统更新读取次数统计(修改/etc/fstab文件)
mount -o remount,noatime /data
² 如果存储的数据中有大的文件,建议使用ext4/xfs这样的文件系统
这里可以考虑把数据目录和日志文件及相关的中间件目录(如果有的话)分开来,隔离IO
设置最大打开文件描述符
cat /etc/security/limits.conf
soft nofile 102400
hard nofile 102400

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Compétences de traitement de structures de données volumineuses de PHP

Comment optimiser les performances des requêtes MySQL en PHP ?

Comment utiliser la sauvegarde et la restauration MySQL en PHP ?

Comment insérer des données dans une table MySQL en utilisant PHP ?

Quels sont les scénarios d'application des types d'énumération Java dans les bases de données ?

Comment corriger les erreurs mysql_native_password non chargé sur MySQL 8.4

Comment utiliser les procédures stockées MySQL en PHP ?

Comment créer une table MySQL en utilisant PHP ?
