對tmpfs的性能測試
某應用服務器涉及很多臨時文件的IO操作,同事建議將文件放在tmpfs上以減少磁盤IO,所以在我的開發機上測試了一下tmpfs和磁盤IO的性能對比,確實差異很大:
測試tmpfs的寫性能:
17:06 [root@addev]$ time dd if=/dev/zero of=/dev/shm/test bs=8k count=300000
dd: writing `/dev/shm/test': No space left on device
246069+0 records in
246068+0 records out
2015789056 bytes (2.0 GB) copied, 1.73075 seconds, 1.2 GB/s
real 0m1.732s
user 0m0.018s
sys 0m1.714s
測試tmpfs的讀性能:
18:19 [root@addev]$ time dd if=/dev/shm/test of=/dev/null bs=8k
246068+0 records in
246068+0 records out
2015789056 bytes (2.0 GB) copied, 1.28952 seconds, 1.6 GB/s
real 0m1.291s
user 0m0.018s
sys 0m0.820s
測試文件系統的寫性能:
17:06 [root@addev]$ time dd if=/dev/zero of=/opt/test bs=8k count=300000
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 8.574 seconds, 287 MB/s
real 0m8.582s
user 0m0.053s
sys 0m4.070s
測試文件系統的讀性能:
18:20 [root@addev]$ time dd if=/opt/test of=/dev/null bs=8k
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 19.5491 seconds, 126 MB/s
real 0m19.550s
user 0m0.064s
sys 0m1.809s
使用tmpfs存儲文件需要注意以下問題:
當服務器重啟後,tmpfs內的數據就丟失了
tmpfs會使用內存和swap來存儲數據,所以需要注意它對內存和swap的占用情況