前幾天在淘寶上買了個 SSK 的USB 3.1 Gen2 (type-c) NVME SSD 外接盒 手邊也剛好有一條多的intel 600p nvme ssd 就順手來做個比較 目標是看看有沒有可能直接用外接的SSD來跑postgresql
把600p 裝進去外接盒之後,就先來看一些簡單的資訊 不過沒想到用了幾個指令,都沒辦法辨別出正確的型號
fdisk
沒有看到廠牌、型號
|
|
inxi
內接的intel ssd 有看到,不過外接的這顆SSD沒有model 可是可以看到序號 我在想這個序號應該是外接盒的序號,而不是SSD的?
|
|
dmesg
一樣,也是認不出 SSD ,但是有抓到外接盒
|
|
直接測試吧
不看型號了,直接測試吧!先切好分割、格式化,然後掛載到 /mnt,再用 dd 測試寫入 結果如下
|
|
可以發現,當寫入8G檔案的時候,速度開始急遽下降 翻了一下google 看到這張表格
https://www.anandtech.com/show/10850/the-intel-ssd-600p-512gb-review
intel 600p 256G 的SLC Cache 只有8.5GB 合理解釋了為什麼當寫入8G的檔案時,速度會掉那麼慘,跟SATA硬碟差不多了
用iobench 測試看看
得到一樣的結論,8G左右,就會把cache塞暴,然後掉速
|
|
那如果不用8G的檔案大小來測試呢?看起來是比較正常一點
|
|
跑看看pgbench ??
試試看這次的目標,用 external nvme ssd 跑資料庫,會不會跟放在本機的PCI-E SSD 有所差距?
data_directory in internal pcie-ssd
initialize pgbench database
|
|
run pgbench
|
|
data_directory in external NVME SSD
initialize pgbench database
|
|
run pgbench 可以看到兩邊的結果其實是差不多的,作為資料庫備份是一定沒有問題 至於能不能直接作為資料庫空間使用?我想也許可以嘗試看看..
|
|
update:
剛剛看了一下,發現這樣只有測試到 read (select only) 或許要找找看其他的測試方法
接下來直接用 restore 測試
|
|
restore 5G database with internal pci-e nvme ssd
|
|
看起來是沒有什麼區別,那如果是外接的 SATA SSD呢?
dmesg 看得到型號耶..
|
|
restore 5G database with external sata SSD
很意外的,速度居然還是差不多??
|
|
run pgebnech
這個差很多了,tps 從前面的 26000 掉到剩下 2800 ,差十倍左右!
|
|
疑問:
- 什麼原因會讓外接/內建 nvme ssd 和外接SATA SSD 在 restore db時,花了差不多時間,但是 tps 差異那麼大呢?
- 這樣測試,似乎沒有真正測出外接nvme ssd 跑資料庫時候的效能?