标签: performance

USB 性能/流量监视器?

首先,我发现了一个类似的问题,但它并没有真正解决我的问题。我试图发现我正在使用的设备的 USB 总线是否是我程序中的瓶颈。

如何监控 USB 总线(类似于 gnome-system-monitor 的工作方式)以显示总线利用率?基本上我想确定总线何时被“最大化”。我想我正在寻找的是 usbmon 的一些接口,因为它看起来可以满足我的需求。

这来自于测试 USRP 和 GNU Radio。我遇到了 USB 总线可能是一个限制因素的情况,所以我问了一个更普遍的 USB 性能监控问题。

performance monitoring usb

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

为什么 kworker 在 Linux 3.0.0-12-server 上消耗这么多资源?

上周五,我将我的 Ubuntu 服务器升级到 11.10,它现在使用 3.0.0-12-server 内核运行。从那以后,整体性能急剧下降。升级前系统负载约为 0.3,但目前在具有 16GB RAM(10GB 空闲,未使用交换)的 8 核 CPU 系统上为 22-30。

我要责怪 BTRFS 文件系统驱动程序和底层 MD 阵列,因为 [md1_raid1] 和 [btrfs-transacti] 消耗了大量资源。但是所有的 [kworker/*:*] 消耗更多。

sar 自周五以来,一直在输出类似的东西:

11:25:01        CPU     %user     %nice   %system   %iowait    %steal     %idle 
11:35:01        all      1,55      0,00     70,98      8,99      0,00     18,48 
11:45:01        all      1,51      0,00     68,29     10,67      0,00     19,53 
11:55:01        all      1,40      0,00     65,52     13,53      0,00     19,55 
12:05:01        all      0,95      0,00     66,23     10,73      0,00     22,10 
Run Code Online (Sandbox Code Playgroud)

iostat确认写入率非常低:

sda             129,26      3059,12       614,31  258226022   51855269          
sdb              98,78        24,28 …
Run Code Online (Sandbox Code Playgroud)

performance cpu kernel load

21
推荐指数
2
解决办法
3万
查看次数

LVM2 逻辑卷的碎片整理

问:是否有支持对 LVM2 逻辑卷进行碎片整理的工具?(使它们的范围成为一致的序列)

最好通过定义所需的范围顺序(类似于“磁盘开头的分区 A,A 之后的 B,PV 结尾的 X”

当然,必须考虑以下情况:

  • VG 由一个 PV 组成
  • VG由许多PV组成,但每个LV都坐在一个PV上
  • VG 由许多 PV 组成,LV 的范围跨越许多 PV

是否可以剥离分区,可以讨论。

诀窍:可以使用 移动范围的范围pvmove,例如 : pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999

原因:因为手动移动多个范围pvmove是完全可重复的事情(是否无脑值得怀疑),我很好奇是否存在用于自动化/支持此过程的工具。如果没有......也许我自己做一个 - 你认为这样的工具对其他人有用吗?

storage performance partition lvm

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

echo vs <<<,或在 Bash Award 中无用的使用 echo?

到现在为止,cat无用使用已经众所周知,并且还提到了无用使用echo(与此问题无关)。我想知道是否应该有一个“无用的echoBash 奖”:根据一些非常不科学的测量,管道似乎比 heredocs 和 herestrings 慢得多:

  • 继承人:

    for reps in 1 2 3
    do
        time for i in {1..1000}
        do
            cat <<'END'
    test string
    END
        done > /dev/null
    done
    
    real    0m1.786s
    user    0m0.212s
    sys     0m0.332s
    
    real    0m1.817s
    user    0m0.232s
    sys     0m0.332s
    
    real    0m1.846s
    user    0m0.256s
    sys     0m0.320s
    
    Run Code Online (Sandbox Code Playgroud)
  • 字符串

    for reps in 1 2 3
    do
        time for i in {1..1000}
        do
            cat <<< 'test string'
        done > /dev/null
    done …
    Run Code Online (Sandbox Code Playgroud)

performance bash pipe io-redirection

21
推荐指数
2
解决办法
9859
查看次数

有没有最快的方法关闭系统?

或者是shutdown -h now它可以得到的最快的?

我寻找一些 syscall 或类似的东西,它们将允许跳过在关闭之前完成的大量工作(特别是关心正在运行的过程)。

充其量我想要一个与内核相关的解决方案,对init-middleware(如systemdupstart)一无所知。

与即直接杀死所有服务(如cups/apache/pulseaudio 等)相关的风险......我不在乎......

备注:解决方案应该是软件副。在设备上按下按钮不是我想要的。

shutdown performance

21
推荐指数
3
解决办法
8827
查看次数

为什么高磁盘 I/O 会降低系统响应速度/性能?

我一直不明白为什么高磁盘 I/O 会如此减慢系统速度。这对我来说很奇怪,因为我预计减速只会影响那些依赖于硬盘/光驱数据的进程,但减速甚至会影响加载到 RAM 上的内容。我在这里指的是iowait

为什么处理器要等待,而不是做其他工作?谁能解释这个限制以及为什么它没有在 Linux 内核中解决?有没有没有这个问题的内核?

[注意] 在这方面已经取得一些进展。一方面,后来的内核(在我的例子中是 2.6.37)响应更快。

linux performance kernel io

19
推荐指数
2
解决办法
9492
查看次数

Linux 中的 IPsec 瓶颈是什么?

我试图比较在千兆以太网中连接的两台主机之间的几种网络安全协议的性能。

我的目标是看看我是否可以使带宽饱和,如果不能,限制因素是什么。

  • 使用 SSL,我可以达到 981 MBit/s,因此以太网链路显然是限制因素;
  • 使用 SSH,我只能达到 750 MBit/s,但我的一个核心的使用率为 100%。由于 SSH 是单线程的,CPU 是限制因素;
  • 使用 IPsec,我读到大约 500 MBit/s,但我的内核都没有达到 100%(它们低于 50%)。

所以我的问题是:为什么 IPsec 不能达到更高的带宽?

两台主机运行 Debian Wheezy 和 Strongswan 以获取 IPsec。

performance bandwidth ipsec

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

当 grep 不运行 CPU 时,它会做什么?

在查找与 的匹配项时grep,我经常注意到后续搜索所需的时间明显少于第一次——例如 25 秒与 2 秒。显然,它不是通过重用上次运行的数据结构——那些应该已经被释放的。在 上运行time命令grep,我注意到一个有趣的现象:

real    24m36.561s
user    1m20.080s
sys     0m7.230s
Run Code Online (Sandbox Code Playgroud)

剩下的时间去哪儿了?有什么我可以做的让它每次都跑得快吗?(例如,在grep搜索文件之前让另一个进程读取文件。)

performance grep

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

为什么厕所这么慢?

为什么 wc 实用程序这么慢?

当我在一个大文件上运行它时,它比 md5sum 需要大约 20 倍的时间:

MyDesktop:/tmp$ dd if=/dev/zero bs=1024k count=1024 of=/tmp/bigfile
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.687094 s, 1.6 GB/s

MyDesktop:/tmp$ time wc /tmp/bigfile 
         0          0 1073741824 /tmp/bigfile

real    0m45.969s
user    0m45.424s
sys     0m0.424s

MyDesktop:/tmp$ time md5sum /tmp/bigfile 
cd573cfaace07e7949bc0c46028904ff  /tmp/bigfile

real    0m2.520s
user    0m2.196s
sys     0m0.316s
Run Code Online (Sandbox Code Playgroud)

这不仅仅是由文件充满空值导致的奇怪边缘条件,即使文件充满随机数据或者是文本文件,我也看到了相同的性能差异。

(这是在 Ubuntu 13.04,64 位上)

performance wc

18
推荐指数
2
解决办法
4924
查看次数

文件夹中有数百万个(小)文本文件

我们希望在 Linux 文件系统中存储数百万个文本文件,目的是能够压缩并将任意集合作为服务提供服务。我们尝试了其他解决方案,例如键/值数据库,但我们对并发性和并行性的要求使使用本机文件系统成为最佳选择。

最直接的方法是将所有文件存储在一个文件夹中:

$ ls text_files/
1.txt
2.txt
3.txt
Run Code Online (Sandbox Code Playgroud)

在 EXT4 文件系统上应该是可能的,它对文件夹中的文件数量没有限制。

这两个 FS 进程将是:

  1. 从网页抓取写入文本文件(不应受文件夹中文件数量的影响)。
  2. 压缩选定的文件,由文件名列表给出。

我的问题是,在一个文件夹中存储多达 1000 万个文件是否会影响上述操作的性能或一般系统性能,这与为这些文件创建子文件夹树有什么不同?

performance filesystems ext4 files

18
推荐指数
3
解决办法
9731
查看次数

标签 统计

performance ×10

kernel ×2

bandwidth ×1

bash ×1

cpu ×1

ext4 ×1

files ×1

filesystems ×1

grep ×1

io ×1

io-redirection ×1

ipsec ×1

linux ×1

load ×1

lvm ×1

monitoring ×1

partition ×1

pipe ×1

shutdown ×1

storage ×1

usb ×1

wc ×1