我对DotNetZip库有一个奇怪的性能问题。
在应用程序(在asp.net下运行)中,我正在从数据库中读取一组文件,并将它们即时打包成一个zip文件供用户下载。
我的开发笔记本电脑上的一切正常。一个大约10MB的zip文件,默认压缩率大约需要5秒才能完成。但是,在客户的开发服务器上,同一组文件需要大约1-2分钟来压缩。我甚至经历了更长的时间,长达几分钟。当压缩运行时,CPU利用率为100%,否则它保持在0%左右,因此不会因过载而产生。
更有趣的是,在生产服务器上,完成需要大约20秒。
我应该从哪里开始寻找?
一些硬件规格:
我的笔记本电脑
在具有2核和4GB RAM的虚拟机上运行的开发环境。
开发服务器
根据“我的电脑”中的属性对话框(可能已虚拟化)
任务管理器报告单核
生产服务器
根据“我的电脑”中的属性对话框(可能已虚拟化)
任务管理器报告双核
更新 服务器正在VMWare主机上运行。找到隐藏在任务栏中的VMWare图标。
答案 0 :(得分:0)
更新:因为您评论了zip是在内存中创建的我想添加您还可以使用这些工具来更好地了解内存中发生的事情。延迟几分钟,你期望几乎相同的结果,因为开发服务器和生产服务器是相似的让我想到页面文件..看看是否有其他进程在开发服务器上声称了大量的内存。如果没有足够的zip操作,dev服务器将开始使用页面文件,这是非常昂贵的。
答案 1 :(得分:0)
硬件似乎是这里的问题。
客户的IT人员现在已经升级了运行虚拟化开发服务器的服务器硬件,现在我看到与本地计算机上相同的程序包大小和文件数的压缩时间大约为6秒。
现在在“我的电脑”属性窗口中找到了规范: