Questions tagged «performance»

程序运行的速度

1
如何跟踪Linux和其他* nix OS中的IO使用情况?
有时,系统上的某些东西开始锤打磁盘。我想记录数据,以便让我知道每个进程的I / O使用情况,然后我可以稍后再查看它,看看会继续这样做。我应该如何解决这个问题?对于任意块设备解决此问题的加分点。
15 performance  io 

5
文件夹中数百万个(小的)文本文件
我们希望在Linux文件系统中存储数百万个文本文件,目的是能够压缩并提供任意集合作为服务。我们尝试了其他解决方案,例如键/值数据库,但是对并发性和并行性的要求使使用本机文件系统成为最佳选择。 最直接的方法是将所有文件存储在一个文件夹中: $ ls text_files/ 1.txt 2.txt 3.txt 这在EXT4文件系统上应该是可能的,而EXT4文件系统对文件夹中的文件数没有限制。 这两个FS过程将是: 从网络抓取中写入文本文件(不受文件夹中文件数量的影响)。 压缩所选文件,由文件名列表给出。 我的问题是,在一个文件夹中存储多达一千万个文件是否会影响上述操作的性能或整个系统的性能,这与为文件驻留一个子文件夹树有什么不同?

2
删除大单词列表中重复项的最快方法?
我需要对大型单词表进行重复数据删除。我尝试了几个命令,并在此处和此处进行了一些研究,他们解释说,最快的重复数据删除单词列表的方法似乎是使用awk。 awk-> O(n)吗?排序-> O(n log n)? 但是我发现这似乎是不正确的。这是我的测试结果: sort -u input.txt -o output.txt 真实的0m12.446s 用户0m11.347s sys 0m0.906s awk '!x[$0]++' input.txt > output.txt 真实的0m47.221s 用户0m45.419s sys 0m1.260s 因此,使用sort -u快3.7倍。为什么是这样?有没有更快的方法来进行重复数据删除? ***********更新******** 正如有人在评论中指出的那样,可能是我的词表已在某种程度上被排序。为了排除这种可能性,我使用此python脚本生成了两个单词表。 列表1 = 7 Mb 列表2 = 690 Mb 结果AWK: List1 实数0m1.643s 用户0m1.565s sys 0m0.062s List2 实际2m6.918s 用户2m4.499s sys 0m1.345s 结果排序: List1 …
14 bash  awk  performance  sort 

2
在bash脚本中并行运行数千个curl后台进程
我在以下bash脚本中并行运行卷曲背景进程thounsand START=$(date +%s) for i in {1..100000} do curl -s "http://some_url_here/"$i > $i.txt& END=$(date +%s) DIFF=$(( $END - $START )) echo "It took $DIFF seconds" done 我有49Gb Corei7-920专用服务器(非虚拟)。 我通过top命令跟踪内存消耗和CPU ,它们离界限很远。 我ps aux | grep curl | wc -l用来计算当前卷曲过程的数量。这个数字迅速增加到2-4千,然后开始连续下降。 如果我通过管道卷曲到awk(curl | awk > output)添加简单的解析,则卷曲过程数只会增加到1-2千,然后减少到20到30 ... 为什么进程数量如此急剧减少?这种架构的界限在哪里?
14 linux  performance  bash  curl  wget 

1
ionice是否可以与截止时间计划程序一起使用?
我的Debian Wheezy系统使用deadline调度程序。我习惯于ionice在繁忙的时间重新安排磁盘密集型作业的I / O优先级,而且这似乎有所帮助(但我没有确凿的证据)。 该ionice手册页,核心文件和本文件的OpenSUSE都表明,只有cfq调度考虑ionice干预措施。他们没有明确声明其他调度程序会忽略它,但是他们提到的唯一一个是cfq。 特别是其他调度程序是否deadline与之合作ionice?


4
Grep成千上万个文件
我的目录包含cca 26 000个文件,我需要在所有这些文件中进行grep。问题是,我需要尽可能快的速度,因此制作grep从find命令获取一个文件的名称并将匹配项写入文件的脚本不是理想的。在出现“参数列表过长”之前,cca花了2分钟时间在所有这些文件中进行grep。有什么想法怎么做?编辑:有一个脚本一直在制作新文件,因此不可能将所有文件放在不同的目录中。

1
在带电池的笔记本电脑上禁用ext4的安全栅栏是否安全?
手册页说明barrier了ext4 的选项: 写屏障会强制对日志提交执行正确的磁盘排序,从而使易失性磁盘写缓存可以安全使用,但会降低性能。如果您的磁盘以某种方式由电池供电,则禁用障碍可以安全地提高性能。 带电池(和SSD)的笔记本电脑是否算作具有电池支持的磁盘?那么,barrier=0在笔记本电脑上使用ext4安全吗?

3
关于SSD nukes系统性能的大量写入活动
我注意到当我做大量的写应用程序时,整个系统会变慢。为了进一步测试,我运行了这个(相对)低CPU高磁盘活动: john -incremental > file_on_SSD 这每秒将数万个字符串抽出到我的系统磁盘上的文件中。 执行此操作时,鼠标会滞后,TTY变得无响应,应用程序“消失”,并且通常整个计算机都无法使用。当我最终可以使用Control + C时john,系统将在几秒钟后恢复到完整的状态。 这是一个极端的例子,但是我遇到了类似的问题,即写入强度较低的活动(例如从快速的源中复制大文件或转码)的活动较少。 我的主操作系统磁盘是带有EXT4 的相当快的SSD(OCZ Agility 60GB)。如果将johnEXT4的输出写入机械磁盘,尽管速度慢得多(SSD每秒约42,000个字,机械速度8,000 w / s),但我不会遇到同样的速度下降。吞吐量可能是相关的。机械磁盘也与系统无关。只是数据而已。 而且我正在使用内核2.6.35-2,但是我注意到了这个问题,因为当我大概在使用.31或类似的东西时,我得到了这个SSD。 那么,是什么原因导致经济放缓?EXT4问题?内核问题?SSD问题?上述所有的?还有吗 如果您认为我需要进行其他测试,只需在注释中告诉我该怎么做,然后将结果添加到问题中即可。
13 kernel  performance  io  ssd 

1
使用Linux cgroup平衡CPU性能
我安装了两个使用带有相对较新内核的Linux cgroup的双核Linux系统。一个正在运行Debian Squeeze,另一个正在运行Ubuntu 11.04 Natty Narwhal。尽管Debian系统的内核较旧,但我在cgroups上的CPU负载平衡要好一些,因此可以达到CPU负载平衡。但这并不适合所有情况,而我要问的是,这两个系统上都有特定的怪异之处。 如果您阅读带有控制组的Linux中的资源管理,则将提供一个示例,说明如何重现该问题。这是Ubuntu版本(以root身份运行): cd /sys/fs/cgroup/cpu [On Debian Squeeze start at /mnt/cgroups/cpu instead] mkdir low high echo 512 > low/cpu.shares echo 2048 > high/cpu.shares yes low > /dev/null & echo $! > low/tasks yes high > /dev/null & echo $! > high/tasks ps -C yes -opid,%cpu,psr,args [repeat …

1
为什么处理CPU使用率大于总CPU时间
当我运行TOP命令时,进程显示1208%的CPU使用率,并且在IRIX模式下,总的CPU usr时间为81.7%。当我关闭IRIX模式时,该进程显示99%的CPU使用率,总用户CPU时间为43%。 任何想法可能会发生什么? 更新 是否可以将VM配置错误,从而无法正确报告CPU使用率?
13 performance  cpu  top 

2
如何在Debian中阻止cron作业在特定时间内运行?(“游戏” /“表演模式”)
它看起来像我已经Logcheck的设置为一个cron作业,每当它的运行过程中grep通过logcheck各地占用¼我的CPU。 现在,在某些时候我需要我的全部CPU容量,并且让我的系统占用尽可能少的资源,除了特定的/进程(我可能会以某种方式指定)之外。 是否可以将带有KDE机器的Debian 9.1设置为某种性能模式(或“游戏模式”),以防止用户未明确启动的进程占用大量系统资源,降低了后台进程的负载,最重要的是:延迟cron作业,直到再次停止该模式?

1
为什么strace不显示该过程正在等待某些东西?
强大的力量strace让我失望了。这怎么可能? time foo显示foo运行需要几秒钟(“真实”),但在用户空间(“用户”)和内核(“ sys”)中使用的CPU时间都可以忽略不计。对于好奇,foo定义如下。 因此,它花费大部分时间等待其他事情,而不是执行CPU指令。正常情况下,我可以看到它的等待状态strace-即哪个系统调用长时间处于阻塞状态。不幸的是,这种方法行不通。 strace -ttt -T -C -w foo显示系统调用,时间戳和系统调用所花费的(实际)时间的摘要。但是,此特定过程显示出在系统调用内花费的总(实际)时间微不足道。 foo实际上是journalctl -b -u dev-hugepages.mount。除非我每次都必须将最后一个参数更改为一个不同的systemd单元,以便重现此参数。换句话说,我正在调查的延迟是在我第一次尝试获取任何一个systemd单元的日志时发生的。 编辑:在回答了主要问题之后,我还意识到我遇到这个问题会导致延迟的原因。 此过程花费的时间是一个特定的问题,显然并非在所有系统上都发生。https://github.com/systemd/systemd/issues/7963


2
Linux中大量无法预测的I / O性能下降
我使用Debian测试大约6年没有任何问题(我只是定期对其进行更新),但是最近它开始显示出一种随机行为,可以概括为“低I / O性能,一直持续到重启”。 问题是,突然所有磁盘的读写速度降低到〜5MB / sec,从而导致连续的读写操作。由于速率如此之低,因此磁盘不会受到机械挑战或压力,但是一切都会变慢,直到我重新启动为止。 计算机的I / O子系统由一个OCZ Vertex 3 SSD和两个WD Caviar Black HDD组成。SSD包含操作系统的大量读取数据,而HDD上的分区保留了其余部分。 为了诊断问题,我尝试了以下失败的尝试: top 在CPU和I / O使用率方面均未显示任何失控活动。 hdparm返回磁盘的正常性能等级(-t虽然我只检查了)。 smartctl不会在磁盘上显示任何性能问题。长时间的测试表明,这些磁盘与新磁盘一样好。 系统具有Z77芯片组,16GB RAM和Intel i7 3770K CPU,并且统计数据没有显示RAM,I / O或CPU饱和的迹象,但是我没有调试此类问题的经验(尤其是在内核空间中)。任何帮助将不胜感激。 更新1: 作为预防措施,我在每个分区上都运行(强制)fsck。所有的FS都是干净的。 偶然地,我发现一个BIOS升级是在一个月前发布并应用的。 没有分区填充超过50%。 更新2: 问题没有在两天内出现。无论是fsck或BIOS更新清洗系统中的一些堵塞。我仍在监视该问题,并将通过事后答复结束该问题。 更新3: 问题刚刚浮出水面,我做了更多的挖掘工作。请查看答案。
11 linux  performance  io 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.