标签: utilization

如何用C#编写超高速文件流代码?

我必须将一个巨大的文件拆分成许多较小的文件.每个目标文件由偏移量和长度定义为字节数.我正在使用以下代码:

private void copy(string srcFile, string dstFile, int offset, int length)
{
    BinaryReader reader = new BinaryReader(File.OpenRead(srcFile));
    reader.BaseStream.Seek(offset, SeekOrigin.Begin);
    byte[] buffer = reader.ReadBytes(length);

    BinaryWriter writer = new BinaryWriter(File.OpenWrite(dstFile));
    writer.Write(buffer);
}
Run Code Online (Sandbox Code Playgroud)

考虑到我必须将此功能调用大约100,000次,因此速度非常慢.

  1. 有没有办法让Writer直接连接到Reader?(也就是说,实际上没有将内容加载到内存中的Buffer中.)

c# cpu streaming performance utilization

39
推荐指数
3
解决办法
9万
查看次数

计算停止和等待协议中的利用率

我的书中有一个关于计算利用率的问题,但是我无法找到关于这个主题的任何实质性信息来解决它.

无论如何,这是问题:

从地球到遥远行星的距离约为9×10 ^ 10米.如果在64 Mbps点对点链路上使用停止等待协议进行帧传输,那么信道利用率是多少?假设帧大小为32KB,光速为3×10 ^ 8m/s.

假设使用滑动窗口协议.对于什么发送窗口大小,链接利用率是100%?您可以忽略发送方和接收方的协议处理时间.

transmission network-protocols utilization network-utilization

12
推荐指数
1
解决办法
3万
查看次数

单核Java线程运行时的双核CPU利用率

可能重复:
多线程Java应用程序是否会很好地利用多核机器?

我有一个简单而简单的Java线程在我的双核机器上运行(Windows XP 32位环境)

public static void main(String[] strs) {

    long j  = 0;
    for(long i = 0; i<Long.MAX_VALUE; i++)
        j++;

    System.out.println(j);
    }
Run Code Online (Sandbox Code Playgroud)

我的期望是它会坚持使用单个CPU来充分利用高速缓存(因为在循环中我们继续使用本地变量j运行,因此一个CPU工具将是100%而另一个将非常闲置.令人惊讶的是,在线程启动后,两个CPU的使用率都在40%~60%左右,而一个CPU的利用率略高于另一个CPU.

我的问题是,是否有任何操作系统负载均衡机制在检测到不平衡时启动?在我的情况下,Windows操作系统可能发现一个CPU几乎达到100%而另一个几乎处于空闲状态,因此它会定期将线程重新安排到另一个CPU?

在此输入图像描述

#EDIT1 我发现了一个可能的解释:http: //siber.cankaya.edu.tr/ozdogan/OperatingSystems/ceng328/node130.html

java multithreading operating-system utilization

7
推荐指数
1
解决办法
2520
查看次数

Java中的CPU利用率太低

嘿stackoverflow社区!

我遇到的问题是高度参与的算法程序正在使用TOO LITTLE cpu利用率:介于3%到4%之间.返回结果需要很长时间,而且我认为这还不够努力.

你们中的任何一个天才有任何想法为什么会发生这种情况 - 如果有什么我期望100%利用率.另外一个细节是该程序插入到sqlite3数据库中,因此,我相信通过sqlite3jdbc库有很多JNI调用.(请注意,我希望之前使用PreparedQuery批处理延迟这些插入,但这会导致严重的内存问题 - 这里有大量数据).

提前致谢

更新:已修复.是的,我只是一个doofus,但我没想到sqlite会启动一个新的事务并且做很多开销.

我现在使用PreparedStatement并在插入之前排队32768条目 - 对我来说似乎是一个足够好的数字.

java cpu utilization

6
推荐指数
1
解决办法
638
查看次数

如何在Redhat Linux中获取线程CPU利用率指标

我需要获取进程中所有线程的CPU利用率指标.

  • 操作系统= Redhat linux
  • 编程语言=使用POSIX的C++
  • 需求=需要每隔几秒钟采样一次,而不仅仅是一次快照.
  • constraints =不允许在线程中编写其他代码

    我知道你可以使用"top"命令,但还有其他方法吗?是否有"ps"的标志?

提前感谢您的帮助.

linux cpu performance multithreading utilization

6
推荐指数
2
解决办法
1万
查看次数

Windows Azure和动态弹性

有没有办法在Windows Azure中做动态弹性?如果我的工作人员开始变得过载,或者队列开始变得太满,或者太多工作人员没有工作要做,有没有办法通过代码动态添加或删除工作人员,或者只是手动完成(需要人工干预)现在?有没有人知道任何计划添加,如果它目前不可用?

utilization azure elasticity autoscaling

6
推荐指数
2
解决办法
1873
查看次数

CUDA Profiler:计算内存和计算利用率

我正在尝试使用ubuntu上的CUDA nsight分析器为内存带宽利用率和GPU加速应用程序计算吞吐量利用率的两个整体度量.该应用程序在Tesla K20c GPU上运行.

我想要的两个测量值在某种程度上与此图中给出的值相当: 图一

问题是这里没有给出确切的数字,更重要的是我不知道如何计算这些百分比.

内存带宽利用率

Profiler告诉我,我的GPU的最大全局内存带宽为208 GB/s.

在此输入图像描述

这是指设备内存BW还是全局内存BW?它是全球性的,但第一个对我来说更有意义.

对于我的内核,分析器告诉我设备内存带宽是98.069 GB/s.

在此输入图像描述

假设最大208 GB/s参考设备内存我可以简单地计算内存带宽利用率为90.069/208 = 43%?请注意,此内核多次执行,无需额外的CPU-GPU数据传输.因此系统BW并不重要.

计算吞吐量利用率

我不确定将Compute Throughput Utilization放入数字的最佳方法是什么.我最好的猜测是使用每循环指令到每循环最大指令比.剖析器告诉我最大IPC是7(见上图).

首先,这究竟意味着什么?每个多处理器有192个内核,因此最多有6个活动warp.这不意味着最大IPC应该是6?

分析器告诉我,我的内核已发出IPC = 1.144并执行IPC = 0.907.我应该计算计算利用率为1.144/7 = 16%或0.907/7 = 13%或者没有这些?

这两个测量(内存和计算利用率)是否给出了我的内核使用资源的效率的第一印象?还是应该包含其他重要指标?

附加图表

在此输入图像描述

c++ ubuntu profiling cuda utilization

5
推荐指数
1
解决办法
2034
查看次数

在一段时间内有没有办法甚至可能获得GPU的整体利用率?

我想在一段时间内获得有关GPU(我的是NVIDIA Tesla K20,在Linux上运行)的整体利用率的信息."整体"我的意思是,计划运行多少流多处理器,以及计划运行多少GPU核心(我想如果核心正在运行,它将以全速/频率运行?).如果我可以通过触发器测量整体利用率也会很好.

当然在问这里之前,我已经搜索并调查了几个现有的工具/库,包括NVML(和建立在它之上的nvidia-smi),CUPTI(和nvprof),PAPI,TAU和Vampir.但是,似乎(但我还不确定)他们都没有能够提供所需的信息.例如,NVML可以按百分比报告"GPU利用率",但根据其文档/评论,此利用率是"在GPU上执行一个或多个内核的过去一秒的时间百分比",这显然不够准确.对于nvprof,它可以报告单个内核的触发器(具有非常高的开销),但我仍然不知道GPU的使用情况.

PAPI似乎能够获得指令计数,但它不能与其他浮点运算不同.我还没有尝试过其他两种工具(TAU和Vampir),但我怀疑他们能满足我的需求.

所以我想知道甚至可以获得GPU的整体利用率信息吗?如果没有,估计它的最佳选择是什么?我这样做的目的是为在GPU上运行的多个作业找到更好的计划.

我不确定我是否已经清楚地描述了我的问题,所以如果有什么我可以添加以便更好地描述,请告诉我.

非常感谢你!

profiling cuda utilization nvml

4
推荐指数
1
解决办法
1681
查看次数

pthread_cond_wait()不会让CPU睡眠?

所有

我有一个关于pthread_cond_wait()的问题.简而言之,我在一个进程中创建两个POSIX线程,如果我执行以下代码,为什么cpu利用率已满?

我对它进行实验,如果我在bool isNodeConnect3之前删除注释标记,程序似乎没有问题,CPU利用率几乎为0%,换句话说,theads将进入睡眠状态并且不花费CPU资源,这就是我的意思想.

这是一个数据识别问题吗?也许,但我不这么认为,因为我用"#pragma pack(push,1)... #pragma(pop)括起我的结构"你能给我一些建议吗?

环境主机操作系统是win7/intel 64位,客户操作系统是ubuntu 10.04LTS给客户操作系统提供"处理器核心数:4"以下是我的测试代码,你可以用
gcc -o program1 program1.c 构建和运行它- pthread && ./program1获取CPU利用率为25%.结果取决于您的设置.

非常感谢.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <string.h>
#include <pthread.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <errno.h>
#include <stdbool.h>


#pragma pack(push,1)
struct BUFF_TX{
    pthread_mutex_t mutex_lock;
    pthread_cond_t more;
};

struct AtreeNode{
    struct BUFF_TX buff_tx;

    bool isNodeConnect;                   
    bool isNodeConnect1;                  
    bool isNodeConnect2;                  
//  bool isNodeConnect3;  // important           

    pthread_t thrd_tx;          

};


struct AtreeNode treeNode[2];
int tmp[2];  

#pragma (pop)


void Thread_TX(int *nodeIdx) …
Run Code Online (Sandbox Code Playgroud)

c cpu sleep pthreads utilization

3
推荐指数
1
解决办法
2092
查看次数

MySQL在做什么?引导时100%的磁盘利用率

我在Win10机器上有一个大型数据库,mysqld.exe会执行许多磁盘I / O(100%),并且持续数小时以100MB / s的速度持续写入-主要是写入-多次重启后仍然存在。我怎样才能知道它到底在做什么,并阻止它?我知道数据库目前未被使用,我想弄清楚该I / O来自何处并停止它。我在互联网上找到的唯一解决方案是常规配置建议,我不需要,我现在需要关闭此设备!

show processlist不显示任何内容。

更新:问题是在表上进行大量后台回滚操作。解决方案是:

1) kill mysqld.exe
2) add innodb_force_recovery=3 to my.ini
3) start mysqld.exe
4) export the table (96GB table resulted in about 40GB .sql file)
5) drop the table
6) kill mysqld.exe
7) set innodb_force_recovery=0 to my.ini
8) reboot and import the table back
Run Code Online (Sandbox Code Playgroud)

目前还没有关于数据完整性的想法,但是看起来还不错。

感谢米尔尼。

mysql database disk utilization server

2
推荐指数
1
解决办法
5228
查看次数

属性越少的 SQL 查询成本是否越低?

我的问题很简单 - 具有较少属性的 SQL 查询成本是否会较低?

示例:假设我们的users表有 10 列,例如userId, name, phone, email, ...

SELECT name, phone FROM users WHERE userId='id'
Run Code Online (Sandbox Code Playgroud)

比这个便宜

SELECT * FROM users WHERE userId='id'
Run Code Online (Sandbox Code Playgroud)

从资源利用的角度来看是这样吗?

sql utilization

2
推荐指数
1
解决办法
335
查看次数

Cassandra 磁盘空间利用率高

我们在生产中有一个 12 节点的 cassandra 集群。最近,几乎所有节点都在使用高于 85% 的磁盘空间。我们尝试为几个表添加 default_time_to_live、gc_grace_seconds。但似乎对记录数或磁盘空间没有影响。有执行 nodetool 压缩和清理的建议。但这也提到不建议在生产环境中运行。

一些具体问题,

  1. 尝试将 TTL 设置为 100 天,将 gc 设置为 3 小时。期望是超过 90 天的记录应该在 3 小时后被删除。但它仍然完好无损。使用 TTL 设置删除超过 100 天的记录还有什么需要注意的吗?预计也将释放磁盘空间。删除记录后还应该做些什么来释放磁盘空间。
ALTER TABLE my_keyspace.my_item WITH default_time_to_live=8640000
ALTER TABLE my_keyspace.my_item WITH gc_grace_seconds=10800
Run Code Online (Sandbox Code Playgroud)
  1. 是否可以在所有实例使用超过 85% 的磁盘空间的生产环境中运行 nodetool compact 然后进行 nodetool 清理?

请分享其他建议,以释放 Cassandra 使用的磁盘空间。

Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address        Load       Tokens       Owns (effective)  Host ID                               Rack
UN  10.1.x.x  997.26 GiB  256          24.7%             erff8abf-16a1-4a72-b63e-5c4rg2c8d003  rack1
UN  10.2.x.x   1.22 TiB   256          26.1%             a8auuj76-f635-450f-a2fd-7sdfg0ss713e  rack1
UN  10.3.x.x   1.21 …
Run Code Online (Sandbox Code Playgroud)

space disk utilization cassandra

1
推荐指数
1
解决办法
59
查看次数

处理器利用率

出于好奇......在多线程环境中,CPU的利用率是否超过100%?

processor utilization

0
推荐指数
1
解决办法
228
查看次数