需要一个好的文件创建工具

时间:2009-11-03 07:58:32

标签: file filesystems

我想创建一个测试设置,它应该有一个4tb的高密度文件系统。 我已经尝试了一些工具(wst)但是它们会在一段时间后崩溃。经过两天的努力,我甚至无法填满20%的磁盘空间。我在Windows上需要这个工具。有什么建议吗?

5 个答案:

答案 0 :(得分:1)

您可以使用Disk Tools。我用过一次压力测试一个可能有坏扇区的硬盘。

答案 1 :(得分:0)

你可以:

  1. 在目录中创建一个小文件,
  2. 复制粘贴目录本身,
  3. 将重复目录放入原始目录中,
  4. 并重复步骤2和3,直到达到需要为止(大约30次,具体取决于初始文件的大小)。

答案 2 :(得分:0)

如果您只想创建许多文件,则可以使用此批处理脚本尽可能多地复制给定文件。没有停止条件,但我认为计数器变量在大约2 ^ 31之后会溢出。

使用像extreme_copy my_test_file.txt这样的脚本,其中测试文件可以是您想要的任何大小。

这是剧本:

@ECHO OFF

IF "%1"=="" GOTO END
IF NOT EXIST "%1" GOTO END

REM copy loop
SET FILE_NUMBER=1

:COPY

copy "%1" "%~dpn1_%FILE_NUMBER%%~x1" > nul

REM show some progress
SET /A SHOW_ITERATIONS="%FILE_NUMBER% %% 1000"
IF /I %SHOW_ITERATIONS%==0 ECHO %FILE_NUMBER% files created...

SET /A FILE_NUMBER=%FILE_NUMBER% + 1

GOTO COPY

:END

答案 3 :(得分:0)

我做了一个C#控制台应用程序创建随机文件,随机内容从2kb到10kb。 编译它(这是.net 2,但我确定它将使用任何.NET版本编译) 像这样跑:
你的时间d:
YourExe d:\ temp2

半免责声明,如果您运行应用程序的时间足够长,可能会获得stackoverflow,如果发生这种情况,请再次启动它。文件名是随机的,因此不会产生任何问题

class Program
    {
        static void Main(string[] args)
        {
            if (args.Length != 1 || !Directory.Exists(args[0]))
            {
                Console.WriteLine("Arg should be: C:\\ (or your drive letter)");
                return;
            }

            const int RandomFilesToCreate = int.MaxValue;
            for (int i = 0; i < RandomFilesToCreate; i++)
            {
                string FileName = CreateRandomFile(args[0]);
                Console.WriteLine(i + ") Wrote file " + FileName);
            }
        }

        static Random gRan = new Random();
        static string CreateRandomFile(string Path)
        {
            byte[] FileContent = new byte[gRan.Next(2,10) * 1024] ;

            // generate a random filename
            string FileName = Path + "\\TempF_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + ".tmp";
            while(File.Exists(FileName))
                FileName = Path + "\\TempF_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + "_" + gRan.Next(0, int.MaxValue) + ".tmp";

            // fill with random bytes.
            gRan.NextBytes(FileContent);

            // Write to disk
            File.WriteAllBytes(FileName, FileContent);
            return FileName;
        }
    }

答案 4 :(得分:-7)

我无法真正使“Windows”和“4TB数据”两个术语在我脑海中相匹配。 Windows是为普通用户编写的桌面操作系统,用户可以使用IE进行一些Word和浏览。如果您有特殊需求,请使用Linux等服务器操作系统。它配备了处理大量数据所需的所有工具。您还可以获得bonnie等FS基准测试工具。

您还可以从大量文件系统中进行选择,其中一些(如ZFS)是为大尺寸(Exabytes)设计的。从理论上讲,NTFS可以处理这些数据,但我不知道有人真的试过这个。有关指示,请参阅this Wikipedia article

[编辑]由于您使用Windows的“服务器”版本(转换为“使用几个不错的向导设置网络的桌面操作系统”),您必须与Microsoft签订专业支持合同。这意味着你可以打电话给他们,解释你的问题并让他们告诉你如何解决它。

对不起,我在这里做了不必要的讽刺,但我发现这一切真的很有趣;)只是因为市场营销部门在某事上贴上“服务器”标签并不意味着专业管理员会购买它。如果有人会回答“我们做了同样的事情,我们可以让它可靠地工作并让我们满意”,我会感到惊讶。