l********k 发帖数: 14844 | 1 NAS上存放了几个T的小数据文件(100k - 1000k之间),处理程序的访问具有很高的集
中性,即短期内频繁访问1G到10G的固定数据,其它上T的数据几个月也不会碰。这种情
况下用SSD甚至内存缓存可以大幅度提高访问速度。
有这样的解决方案么? |
p***o 发帖数: 1252 | 2 你留个10G内存不用, OS就能帮你缓存10G的文件。
【在 l********k 的大作中提到】 : NAS上存放了几个T的小数据文件(100k - 1000k之间),处理程序的访问具有很高的集 : 中性,即短期内频繁访问1G到10G的固定数据,其它上T的数据几个月也不会碰。这种情 : 况下用SSD甚至内存缓存可以大幅度提高访问速度。 : 有这样的解决方案么?
|
a***e 发帖数: 27968 | 3 瓶颈又不在盘速上
★ 发自iPhone App: ChineseWeb 1.0.6
【在 l********k 的大作中提到】 : NAS上存放了几个T的小数据文件(100k - 1000k之间),处理程序的访问具有很高的集 : 中性,即短期内频繁访问1G到10G的固定数据,其它上T的数据几个月也不会碰。这种情 : 况下用SSD甚至内存缓存可以大幅度提高访问速度。 : 有这样的解决方案么?
|
d*1 发帖数: 15 | 4 ARC就可以, 才几个G,
大型存储可以用l2ARC
【在 l********k 的大作中提到】 : NAS上存放了几个T的小数据文件(100k - 1000k之间),处理程序的访问具有很高的集 : 中性,即短期内频繁访问1G到10G的固定数据,其它上T的数据几个月也不会碰。这种情 : 况下用SSD甚至内存缓存可以大幅度提高访问速度。 : 有这样的解决方案么?
|
l********k 发帖数: 14844 | 5 第一次访问当然是受网速限制。之后再访问,如果有缓存,瓶颈是缓存。这是cache的
基本思路。
【在 a***e 的大作中提到】 : 瓶颈又不在盘速上 : : ★ 发自iPhone App: ChineseWeb 1.0.6
|
E***e 发帖数: 3430 | 6 Seek time is the key I believe.
I once configured my ownCloud data to be on HDD, but later on moved to SSD
because of the drastic performance gap...
【在 a***e 的大作中提到】 : 瓶颈又不在盘速上 : : ★ 发自iPhone App: ChineseWeb 1.0.6
|
a******s 发帖数: 267 | |
d***a 发帖数: 13752 | 8 你是码工? 把处理程序改一下,自己搞个local buffer, 再把client机的内存加大。
NAS那一端不用动。这样做,绕过网络瓶颈,比在NAS上加cache效果好得多。
【在 l********k 的大作中提到】 : NAS上存放了几个T的小数据文件(100k - 1000k之间),处理程序的访问具有很高的集 : 中性,即短期内频繁访问1G到10G的固定数据,其它上T的数据几个月也不会碰。这种情 : 况下用SSD甚至内存缓存可以大幅度提高访问速度。 : 有这样的解决方案么?
|
l********k 发帖数: 14844 | 9 cache肯定是加在client上了。我对windows管理缓存的效率始终不是很信任。
【在 d***a 的大作中提到】 : 你是码工? 把处理程序改一下,自己搞个local buffer, 再把client机的内存加大。 : NAS那一端不用动。这样做,绕过网络瓶颈,比在NAS上加cache效果好得多。
|
d***a 发帖数: 13752 | 10 可以自己写一个简单的file system cache程序。比如说用C编程,应用程序用fread()
读数据,那就自己写一个myfread()代码,内嵌cache算法,用内存或local SSD来做
cache。这个做起来不算复杂。
如果NAS上的数据是很多小文件,也可以改fopen()变成myfopen():检查要打开的文件有
没有local备份。如果没有,从NAS远端拷贝到local SSD或内存虚拟盘。这样做更简单
些,不过要求数据按小文件组织。
【在 l********k 的大作中提到】 : cache肯定是加在client上了。我对windows管理缓存的效率始终不是很信任。
|
|
|
E***e 发帖数: 3430 | 11 城里人真会玩
件有
【在 d***a 的大作中提到】 : 可以自己写一个简单的file system cache程序。比如说用C编程,应用程序用fread() : 读数据,那就自己写一个myfread()代码,内嵌cache算法,用内存或local SSD来做 : cache。这个做起来不算复杂。 : 如果NAS上的数据是很多小文件,也可以改fopen()变成myfopen():检查要打开的文件有 : 没有local备份。如果没有,从NAS远端拷贝到local SSD或内存虚拟盘。这样做更简单 : 些,不过要求数据按小文件组织。
|
d***a 发帖数: 13752 | 12 呵呵,这是小意思了。
【在 E***e 的大作中提到】 : 城里人真会玩 : : 件有
|
p****o 发帖数: 296 | 13 是说kernel3.1里的的BCache么,有个BCache-tools,Block设备层的,不需要在file层
自己搞,有信心牛的过l2Arc另说。 |
l********k 发帖数: 14844 | 14 自己写,不用花心思搞gui,确实不会很复杂。决定cache谁的算法都很简单很基本。
件有
【在 d***a 的大作中提到】 : 可以自己写一个简单的file system cache程序。比如说用C编程,应用程序用fread() : 读数据,那就自己写一个myfread()代码,内嵌cache算法,用内存或local SSD来做 : cache。这个做起来不算复杂。 : 如果NAS上的数据是很多小文件,也可以改fopen()变成myfopen():检查要打开的文件有 : 没有local备份。如果没有,从NAS远端拷贝到local SSD或内存虚拟盘。这样做更简单 : 些,不过要求数据按小文件组织。
|
a***e 发帖数: 27968 | 15 是很基本,不过保证一致性正确性,要搞得旱涝保收也不是那么容易
特别是多线程的环境,说总是轻松的
【在 l********k 的大作中提到】 : 自己写,不用花心思搞gui,确实不会很复杂。决定cache谁的算法都很简单很基本。 : : 件有
|