windows-server-2012-r2 – 如何调整Windows Server 2012 R2以处理包含5000万个文件的NTFS文件结构?

前端之家收集整理的这篇文章主要介绍了windows-server-2012-r2 – 如何调整Windows Server 2012 R2以处理包含5000万个文件的NTFS文件结构?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个开发人员实用程序,我将用它来生成5000万个文件.目录结构深入四级.顶级包含16个目录(2000 – 2016年),下一级 – 月(1-12),下一级 – 天(1 – 31),最后是 – xml文件(每个最多85k).最终目录可能有3000个文件(我还没有完成数学计算,以确定5000万个文件是否适合该目录结构).

我目前正在运行该实用程序,我大约需要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
---------------
您目前的MFT为0x320900000 = 13,431,209,984字节= 12 GiB,内存中只有2GiB.如果要缓存更多的“文件句柄”(即文件系统元数据),更多的RAM将允许您在内存中拥有更多内存.

无论您使用什么文件系统,都会有元数据,根据文件系统的使用模式,您可能最好投资更多内存和/或更快的存储.如果将元文件​​信息的数量存储在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%在内存中”运行,以便没有存储系统延迟.

原文链接:https://www.f2er.com/windows/369249.html

猜你在找的Windows相关文章