《互聯網創業的準備》系列文章 硬盤常識: 機械硬盤HDD固態硬盤SSD 最小單位1個扇區為512B,或4K(2012年民用普及)1個分頁為4K、8K或更高() 性能因素轉速(rpm):5400、7200、1w、1.5w層數:SLC(單層快)、MLC(雙層慢)、TLC(三層更慢,SSD暫未采用,
《互聯網創業的準備》系列文章——
硬盤常識:機械硬盤HDD 固態硬盤SSD
最小單位 1個扇區為512B,或4K(2012年民用普及) 1個分頁為4K、8K或更高()
性能因素 轉速(rpm):5400、7200、1w、1.5w 層數:SLC(單層快)、MLC(雙層慢)、TLC(三層更慢,SSD暫未采用,U盤大量采用)
接口 SATA 3G、SATA 6G(2012年民用普及)、SAS 6G SATA 3G、SATA 6G、SAS 6G、PCI-E
尺寸 2.5英寸、3.5英寸 2.5英寸、PCI-E版型
常見品牌 西部數據、希捷 Intel、鎂光(Crucial)、浦科特(PLEXTOR)
硬盤性能指標:
連續讀寫(常用單位為MB/s):文件在硬盤上存儲位置是連續的,適用場景:大文件拷貝(比如視頻音樂)。速度即使很高,對數據庫性能也沒有參考價值。
4K隨機讀寫(常用單位為iops):在硬盤上隨機位置讀寫數據,每次4KB,適用場景:操作系統運行、軟件運行、數據庫。(圖片靜態服務器、視頻靜態服務器是大文件,測試64K隨機或更大)
常用硬盤性能測試軟件:
Windows:AS SSD Benchmark、CrystalDiskMark、HD Tune Pro、iometer
Linux:iometer
Align I/Os:硬盤IO大小。測試設備時根據硬盤最小單位進行選擇,機械硬盤上選512B或4K,SSD上選4K、8K等。測試分區時受分區sector size影響。由于Linux ext3的sector size為4096,所以在扇區為512B的機械硬盤上也無法選擇Align I/Os on 512B進行測試,測試效果不佳。vps無法進行設備測試,如果是自購服務器,應使用設備測試。
Seq 即 Sequential 即連續讀寫。AS SSD會先以16MB的尺寸為單位,持續向受測分區寫入生成1個達到1GB大小的文件,然后再以同樣的單位尺寸讀取這個,最后計算平均成績而給出結果。
4K 即 Random 4k, Queue Depth=1 即 隨機4K并發1個隊列。AS SSD會以512KB的單位尺寸生成1GB大小的測試文件,然后在其地址范圍(LBA)內進行隨機4KB單位尺寸進行寫入及讀取測試,直到跑遍這個范圍為止,最后同樣計算平均成績給出結果。
4K QD32 即 Random 4k, Queue Depth=32 即 隨機4K并發32個隊列。
4K-64Thrd 即 4K, 64 Thread 即 隨機4K并發64個線程,和 4K QD64是一個意思。AS SSD會生成64個16MB大小的測試文件(共計1GB),然后同時以4KB的單位尺寸,同時在這64個文件中進行寫入和讀取測試,最后依然以平均成績為結果。
通過AS SSD可以看出,iops與MB/s可以直接換算,比如4K讀取是6227iops,即每秒鐘可以讀取6227個4K的文件,即 6227 * 4K / 1024 = 24.3 MB/s。
Intel的SSD性能數據采用iometer 4K QD32的測試結果:
價格與速度:
型號 容量 2012價格 4K QD32隨機讀/寫(iops) 4K QD64 連續讀寫(MB/s)
民用 機械7200rpm 3.5英寸 SATA 6G 希捷Barracuda 7200.14 3TB ¥1.1k 409/365 386/291 200/180
企業級 機械10000rpm 2.5英寸 SAS 6G 希捷Savvio 10K.5 300GB ¥1k 750/700 170/170
企業級 機械15000rpm 2.5英寸 SAS 6G 希捷Savvio 15K.3 300GB ¥2.2k
企業級 固態SLC 2.5英寸 SATA 3G Intel X25-E 32G ¥2.5k 3.5w/3.3k 250/170
企業級 固態MLC PCI-E Intel 910 400G ¥14w 9w/3.8w 1000/750
企業級 固態MLC PCI-E Intel 710 100G ¥2.5k 3.8w/2.3k 270/170
民用 固態MLC 2.5英寸 SATA 6G Intel 520 120G ¥840 2.5w/8w 550/500
民用 固態MLC 2.5英寸 SATA 6G 鎂光 M4 128G ¥800 7.8w/4.2w 7w/4w 500/175
為什么民用SSD的iops很高價格卻很低,而企業級SSD的iops有的很低而價格卻很高?因為企業級SSD的耐用性高,比如Intel 710 100G壽命為4K寫入500TB,即5000次全盤寫入。
Intel SSD壽命指標:smart中的“E8:Avai lable Reserved Space”:可用的預留閃存數量、“E9:Media Wearout Indicator”:閃存磨耗指數。其他廠商的SSD類似,比如鎂光的wear leaving count。
SSD新盤的剩余磨損為100,當低于10時,應更換,報廢。
todo:數據庫的選擇
關系型數據庫用Mysql還是PostgreSQL,或者全用NoSQL?mongo還是hbase?
Mysql 和 PostgreSQL都可以。mysql用的人多,但是oracle收購sun以后,把mysql限制的更加封閉,正在衰落,和可能和OpenOffice一樣被oracle整死,免備案空間,衍生出LibreOffice。但不用很擔心,即使mysql被oracle整死,也會衍生出開源版本,使用方式一樣。
關系型數據庫和NoSQL搭配使用較好,關系型適合底層業務,NoSQL適合上層業務。關注淘寶hbase的使用。
Mysql性能與硬盤iops的關系:mysql可以把讀取結果放在內存中,即query cache,所以db server安裝大內存即可實現只讀內存、不讀硬盤。
當預計數據量會增長到超過內存大小時,進行分表(把一個表中的數據拆分),放到多個大內存服務器上,保證每個服務器上的數據都小于內存大小,香港服務器,即可實現全部緩存。
2012年內存價格:UDIMM no ECC DDR3 1600民用內存 ¥270/8GB,RDIMM ECC DDR3 1600服務器內存 ¥440/8G。但一臺服務器能安裝的內存有限,2012年典型的Dell服務器有24個插槽,主板芯片支持768G內存,2012年DDR3內存生產工藝最高是單條8G(DDR4已實現單條16G,但主板尚未支持DDR4),所以一臺服務器最大內存192G(¥440 * 24條 = 1w)。
數據庫寫入時必須寫硬盤(否則就不叫持久化存儲了……),¥2.5k的Intel 710企業級SSD的寫入iops為2.3k,而萬轉硬盤的iops為700,如果要達到SSD的性能,需要多塊萬轉硬盤組RAID。如果使用iops為3w的SSD,性能比機械硬盤提升了30倍。
如果數據量不大,遠低于192G,就不需要做分表了嗎?
仍然要分表,原因有2個:
1、大內存會提升mysql讀取性能,但并發讀取能力也是有上限的,香港虛擬主機,這時受CPU性能限制,2012年典型的服務器是雙路,即2個8核CPU(mysql內存并發待測試)。
2、內存很大,對并發寫入能力沒有作用,寫入能力完全依賴于硬盤的iops。一臺服務器的寫入性能很有限,請看下面的測試。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com