我正在分析一个大型网络上的CPU使用情况。为了做到这一点,我提供了一个大的excel表格。它包含batchID(意味着我们专用一个CPU来运行该任务)startTime, endTime(意味着我们知道CPU在这段时间内被完全占用)。
基于这些数据,我需要了解在特定实例上运行了多少批。因此,我将使用一个聊天工具,x轴是时间,y轴是在每个时间实例中运行的批的计数。
整个文件超过15000行,超过两天的数据。
BATCHID startTime endTime
560062 13/10/2011 11:59:23 13/10/2011 11:59:26
560061 13/10/2011 08:59:18 13/10/2011 08:59:21
560060 13/10/2011 05:59:21 13/10/2011 05:59:30
560059 13/10/2011 02:59:34 13/10/2011 02:59:43
560058 13/10/2011 01:57:24 13/10/2011 01:57:29
560057 13/10/2011 01:57:24 13/10/2011 01:57:28
560056 12/10/2011 23:59:19 12/10/2011 23:59:28
560055 12/10/2011 20:59:21 12/10/2011 20:59:30
560054 12/10/2011 18:02:13 12/10/2011 18:02:22
560053 12/10/2011 18:02:13 12/10/2011 18:02:21
560052 12/10/2011 18:02:12 12/10/2011 18:02:21
560051 12/10/2011 18:02:07 12/10/2011 18:02:16
560050 12/10/2011 18:02:03 12/10/2011 18:02:11
560049 12/10/2011 18:02:10 12/10/2011 18:02:19
560048 12/10/2011 18:02:11 12/10/2011 18:02:16
560047 12/10/2011 18:02:09 12/10/2011 18:02:13
560046 12/10/2011 18:02:04 12/10/2011 18:02:13
560045 12/10/2011 18:02:12 12/10/2011 18:02:21
要求:
- 我们需要一个数组来包含时间片数据。可以是每1分钟或每5分钟。如果我们需要以每1分钟的间隔分析两天,那么我们可能需要2880个数据点用于x轴。
- 因为在任何情况下都可能有许多作业在运行。我们需要设置一个机制来计算在该时间片上运行的批的数量。
我怀疑Excel 2003可以做得很好,因为列数限制在256。
我欢迎任何关于如何在Octave/MATLAB, ORACLE PL/SQL, R或Bash Script中有效地执行此任务的建议。
克服Excel大小限制分析大型网络使用
我会将数据更改为如下内容:
BATCHID START/END TIME NUM_TASKS
560062 START 13/10/2011 11:59:23 1
560062 STOP 13/10/2011 11:59:26 0
按时间排序并计算NUM_TASKS作为前一行的值+1表示开始,-1表示停止。然后,您可以绘制TIME与NUM_TASKS的关系图,并在图本身中执行任何平滑或间隔。