我目前正在运行该实用程序,我大约需要1/3(执行的天数).正如我所担心的那样,遍历目录树的任何部分都是一种痛苦的经历.在浏览器中需要几秒钟.这与服务器级硬件. SAS 7200RPM(我知道现在不是很快)12TB Raid 5或10,分配4个3.4ghz xeon cpus.
如何提高Windows Server 2012 R2在内存中缓存文件句柄的能力?我没有运行NFS服务.
M:\>defrag /a /v /h m: Microsoft Drive Optimizer Copyright (c) 2013 Microsoft Corp. Invoking slab consolidation on DB MDF (M:)... The operation completed successfully. Post Defragmentation Report: Volume Information: Volume size = 12.99 TB Cluster size = 64 KB Used space = 1.55 TB Free space = 11.44 TB Slab Consolidation: Space efficiency = 100% Potential purgable slabs = 1 M:\>
C:\Windows\system32>fsutil fsinfo ntfsinfo m: NTFS Volume Serial Number : 0x9c60357c60355de8 NTFS Version : 3.1 LFS Version : 2.0 Number Sectors : 0x000000067ffbefff Total Clusters : 0x000000000cfff7df Free Clusters : 0x000000000b6bcb45 Total Reserved : 0x0000000000000004 Bytes Per Sector : 512 Bytes Per Physical Sector : 4096 Bytes Per Cluster : 65536 Bytes Per FileRecord Segment : 1024 Clusters Per FileRecord Segment : 0 Mft Valid Data Length : 0x0000000320900000 Mft Start Lcn : 0x000000000000c000 Mft2 Start Lcn : 0x0000000000000001 Mft Zone Start : 0x00000000018f8780 Mft Zone End : 0x00000000018f9420 Resource Manager Identifier : A47067E0-6356-11E6-8 C:\Windows\system32>
RAMMAP
Metafile details:
Total=2,882,220 K,Active=2,736,688 K,Standby=143,968 K,Modified=852
K,Modified no write=712 K.
这个页面还有什么值得关注的?
此时服务器分配了16G的内存.我可以要求更多.
C:\Windows\system32>fsutil.exe 8dot3name query m: The volume state is: 1 (8dot3 name creation is disabled). The registry state is: 2 (Per volume setting - the default). Based on the above two settings,8dot3 name creation is disabled on m: C:\Windows\system32>
Contig v1.8 - Contig Copyright (C) 2001-2016 Mark Russinovich Sysinternals m:\$Mft is in 80 fragments m:\$Mft::$BITMAP is in 32 fragments Summary: Number of files processed: 2 Number unsuccessfully procesed: 0 Average fragmentation : 56 frags/file
NtfsInfo v1.2 - NTFS Information Dump Copyright (C) 2005-2016 Mark Russinovich Sysinternals - www.sysinternals.com Volume Size ----------- Volume size : 13631357 MB Total sectors : 27917021183 Total clusters : 218101727 Free clusters : 184577826 Free space : 11536114 MB (84% of drive) Allocation Size ---------------- Bytes per sector : 512 Bytes per cluster : 65536 Bytes per MFT record : 0 Clusters per MFT record: 0 MFT Information --------------- MFT size : 16210 MB (0% of drive) MFT start cluster : 49152 MFT zone clusters : 33255616 - 33258848 MFT zone size : 202 MB (0% of drive) MFT mirror start : 1 Meta-Data files ---------------
无论您使用什么文件系统,都会有元数据,根据文件系统的使用模式,您可能最好投资更多内存和/或更快的存储.如果将元文件信息的数量存储在RAM中并且文件使用模式通常处理新文件而不是重复使用较小的文件子集,那么元文件信息的数量是不现实的,那么更快的存储就像raid 10数组一样,具有许多镜像对以进行条带化从更快的SSD和/或15K RPM SAS磁盘,可能需要限制寻道时间并增加存储可以处理的可用IOP的数量.
请记住,Windows内存管理器的默认设置可能不适用于您的情况,您可能需要调整一些设置,特别是如果您没有计划有足够的RAM来使整个MFT适合RAM,除了其余的系统要求.我注意到几乎所有的元文件数据都被标记为活动内存,这意味着当不使用Windows缓存系统时,不允许将其从RAM中丢弃.我可以使用Windows Server 2008 R2 Metafile RAM Usage上的powershell脚本(甚至在Server 2008到2012R2上,我希望2016年)设置标记为活动的元文件内存量的最小值和最大值,并强制其余的备用.这允许缓存系统更好地优先考虑RAM中的内容.
编辑:虽然我不熟悉jmeter,但听起来就像文件系统使用模式一样
>以顺序方式写出所有内容.
>以大部分顺序的方式尽可能快地读取所有内容
>以部分随机模式第二次读取它们(当每个线程竞争读取它想要的文件组时)通过网络发送它们
有了这种使用模式,为了看到添加更多ram的合理好处,您需要添加足够的内容以适应RAM中的整个MFT.这通常是浪费钱.如果增加更多的RAM会更具成本效益,并且升级存储以显着改善IOP.这应该比保持一个缓慢的7.2K rpm磁盘raid5阵列,或者甚至是只有4个具有大量ram的磁盘的raid10更快,因为元数据不是从存储器读取/写入的唯一数据.请参阅this calculator作为预期IOP性能的估算工具,以及不同数量的磁盘和raid级别如何影响性能.
在上面的例子中,添加更多ram的唯一方法比使用具有更快存储的系统更快,如果你添加足够的ram,所有数据,包括文件内容也将在ram中.这就是为什么一些数据库系统宣称他们“100%在内存中”运行,以便没有存储系统延迟.