标签: performance

为什么“ls *”比“ls”花费的时间长?

我在一个目录中有几个文件:

$ ls | wc -l
9376
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么使用ls *and有这么大的时差ls

$ time ls > /dev/null
real    0m0.118s
user    0m0.106s
sys     0m0.011s
Run Code Online (Sandbox Code Playgroud)

$ time ls * > /dev/null
real    1m32.602s
user    0m0.233s
sys     0m0.438s
Run Code Online (Sandbox Code Playgroud)

好吧,这是一个极端的例子,可能会有所增强,因为该目录位于通用并行文件系统 (GPFS) 上。但我也可以看到本地文件系统的显着放缓。

编辑:

$ time ls -l > /dev/null
real    0m58.772s
user    0m0.113s
sys     0m0.452s
$ time ls -l * > /dev/null
real    1m19.538s
user    0m0.252s
sys     0m0.461s
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,在我的例子中没有子目录:

$ diff <(ls) <(ls *)
$
Run Code Online (Sandbox Code Playgroud)

ls performance filesystems time

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

为什么迭代文件比读入内存和计算两次快两倍?

我正在比较以下内容

tail -n 1000000 stdout.log | grep -c '"success": true'
tail -n 1000000 stdout.log | grep -c '"success": false'
Run Code Online (Sandbox Code Playgroud)

与以下

log=$(tail -n 1000000 stdout.log)
echo "$log" | grep -c '"success": true'
echo "$log" | grep -c '"success": false'
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,第二个花费的时间几乎是第一个的 3 倍。它应该更快,不是吗?

performance bash io

27
推荐指数
3
解决办法
5764
查看次数

为物理扇区大小 4096 HDD 优化逻辑扇区大小

许多新硬盘的物理扇区大小为 4096。是否可以使系统使用相同大小的逻辑扇区大小,而不是默认的 512 逻辑扇区大小?

它会加速批量读取和写入吗?哪里可以配置?

performance io hard-disk

27
推荐指数
2
解决办法
7万
查看次数

Is piping, shifting, or parameter expansion more efficient?

I'm trying to find the most efficient way to iterate through certain values that are a consistent number of values away from each other in a space separated list of words(I don't want to use an array). For example,

list="1 ant bat 5 cat dingo 6 emu fish 9 gecko hare 15 i j"
Run Code Online (Sandbox Code Playgroud)

So I want to be able to just iterate through list and only access 1,5,6,9 and 15.

EDIT: I should have made it clear that the …

performance pipe shell-script cut

27
推荐指数
3
解决办法
3061
查看次数

我可以禁用updatedb吗?

updatedb必要吗?我从不使用locate,我的服务器往往有数以百万计的文件,这通常会使 updateb 运行很长时间并消耗 MySQL 和/或其他软件所需的 I/O。

我可以从 cron 中删除它并期望一切正常吗?(我的意思是在服务器上找到的常用软件:linux、cpanel、mysql、apache、php 等)。

linux performance io updatedb

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

尽管 CPU 或磁盘都没有被过度使用,但为什么负载仍然很高

我从以下输出top

Cpu(s): 43.8%us, 32.5%sy,  4.8%ni,  2.0%id, 15.6%wa,  0.2%hi,  1.2%si,  0.0%st
Mem:  16331504k total, 15759412k used,   572092k free,  4575980k buffers
Swap:  4194296k total,   260644k used,  3933652k free,  1588044k cached
Run Code Online (Sandbox Code Playgroud)

的输出iostat -xk 6显示如下:

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda       0.00   360.20   86.20  153.40  1133.60  2054.40    26.61     1.51    6.27   0.77  18.38
sdb       0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd      22.60   198.80   17.40   31.60   265.60   921.60    48.46     0.18 …
Run Code Online (Sandbox Code Playgroud)

performance load

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

如何限制资源使用以节省某个进程的 CPU+RAM?

我有一个开发服务器,sshd有时会因为机器内存不足而停止工作。是的,我们的内存不足,升级现在不是一个可行的选择。我想要做的是告诉机器:“做任何你想做的事,但留下 20MB 和一些 CPU 给sshd!”。

那怎么办呢?

performance limit

25
推荐指数
2
解决办法
3806
查看次数

btrfs 快照数量的实际限制?

我正在考虑在我的数据驱动器上使用 btrfs,以便我可以使用snapper或类似 snapper 的东西来拍摄基于时间的快照。我相信这会让我浏览旧版本的数据。这将是我当前的异地备份的补充,因为驱动器故障会清除数据和快照。

根据我的理解,btrfs 快照不会占用太多空间(元数据和已更改的块,可能还有一些开销),因此空间似乎不是限制。

如果我有 100 万个快照(例如,两年内每分钟一个快照),假设我有足够的磁盘空间来存储数据、更改的数据和元数据,是否会造成严重破坏?

如果快照数量有实际限制,是否取决于文件数量和/或文件大小?

performance limit btrfs snapshot

25
推荐指数
3
解决办法
7631
查看次数

为什么`updatedb` 程序运行得这么快?

通常,当我的程序进行全盘扫描并检查系统中的所有文件时,它们需要很长时间才能运行。相比之下,为什么updatedb 运行得如此之快?

performance updatedb

25
推荐指数
2
解决办法
3114
查看次数

禁用 Spectre 和 Meltdown 缓解措施

我可以在 Ubuntu 18.04LTS 中禁用 Spectre 和 Meltdown 缓解功能吗?

我想测试当我在 Linux 中禁用这两个功能时,我获得了多少性能,如果性能很大,则永久使用。

performance vulnerability

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