我确信它无处不在。您可以“感觉”网络运行缓慢,或机器运行或速度慢或某些东西。但服务器/机箱日志没有显示任何内容,因此IT部门不相信您。你是做什么?
你的回归时间是两倍......但这还不够 好吧你使用dd等传输100 GB,但是......这还不够。 好吧,你把服务器放在不同的机箱中2周,它工作正常......但是......这还不够......
所以你如何让IT更换机箱?
更具体地说: 有没有我可以在两个设置上运行的套件(应该是相同的),这可以显示网络/ CPU /磁盘访问的差异..哪些IT会相信?
答案 0 :(得分:5)
计算机不会像我们一样老化和减速。如果您的服务器速度变慢 - 实际上速度较慢,不仅因为您使用的其他计算机变得越来越慢而感觉更慢 - 那么有一个原因,您可能能够解决它。我会尝试清理一些磁盘空间,对磁盘进行解密,并检查正在运行的其他进程(可能有人向系统添加了更多应用程序,而您只是没有获得那么多循环)。
如果您的应用使用数据库,您可能需要分析查询性能并查看某些索引是否有序。如果必须使用表扫描,那么当数据量很少时,性能良好的查询可能会在数据量增长时开始花费很长时间。作为一个以前的“IT”人,我也不愿意把硬件扔给一个问题,因为有人告诉我系统正在放慢速度。我想知道发生了什么变化,看看我是否可以按原样运行系统。如果应用程序完全增加了硬件 - 在您进行了适当的优化之后 - 那么升级是一个合理的选择。
答案 1 :(得分:4)
运行标准基准测试套件。与“工作”类似的计算机相比,看它是否精确定位了内存,CPU,总线或磁盘。
有关提示,请参阅http://en.wikipedia.org/wiki/Benchmark_(computing)#Common_benchmarks。
答案 2 :(得分:2)
证明某事的唯一方法是进行严格的审核。
传统上,我们应该在改变我们感兴趣的变量的同时保持系统在两个不同的集合之间保持不变。在这种情况下,变量是运行代码的硬件。因此,简单来说,您应该在两套不同的硬件上审核软件的运行情况,其中一套是您不满意的硬件。并看到差异。
现在,如果你要正确地做到这一点,我相信你是,你首先需要提出null hypothesis,例如:
“应用程序的缓慢是 与我们的具体硬件无关 正在使用“
现在你设置disproving that hypothesis支持alternative hypothesis。收集到足够的结果后,您可以对它们应用统计分析,以确定是否存在任何差异statistically significant。有分析可以找出你需要多少数据,然后比较两组以确定差异是随机的,还是不是随机的(这会反驳你的零假设)。您所做的测试类型主要取决于您的数据,但聪明的人已经checklists to help us decide。
答案 3 :(得分:0)
听起来您的主要问题是由IT部门倾听,但原始技术数据可能对合适的人员没有说服力。从业务中获得备份可能对您有所帮助,这意味着谈论资金。
幸运的是,这两个平台已经包含一个共同的软件 - 应用程序本身 - 旨在为某人赚钱或省钱。为什么不测量它可以多快地做到这一点,例如处理订单需要多长时间?
通过测量应用程序处理每个子任务或数据源所花费的时间,您可以大致了解正在执行的底层硬件。写入本地数据库,或处理大于RAM的数据结构将影响磁盘,使网络调用将影响网络硬件,CPU绑定计算将影响那里。
这些数据永远不会像基准测试那样精确,并且可能需要昂贵的编码,但它更容易将其发现的内容翻译成金钱术语。 Log4j的NDC and MDC功能和Springs AOP可能是您的良好支持工具。
答案 4 :(得分:0)
从Windows 2000中的“开始/运行”运行perfmon.msc到Vista。然后只需为CPU,磁盘等添加计数器。
对于SQL查询,您应捕获实际查询,然后手动运行它们以查看它们是否很慢。
例如,如果使用SQL Server,请从Tools,SQL Server Profiler运行探查器。然后在程序中执行一些操作,并查看捕获任何可疑的数据库调用。将其中一个查询复制并粘贴到management studio中的新查询窗口中并运行它。
对于网络,您应该尝试人为地限制网络速度以查看它对代码的影响(例如Traffic Shaper XP是一个简单的免费软件限制器)。