标签: io

如何将每个进程的 I/O 限制到最大限制?

我正在寻找一种方法来将进程磁盘 io 限制为设定的速度限制。理想情况下,该程序的工作方式类似于:

$ limitio --pid 32423 --write-limit 1M
Run Code Online (Sandbox Code Playgroud)

将进程 32423 限制为每秒 1 兆字节的硬盘写入速度。

io process-management hard-disk limit ulimit

37
推荐指数
4
解决办法
5万
查看次数

为什么大部分磁盘 IO 都归因于 jbd2 而不是实际使用 IO 的进程?

在监控磁盘 IO 时,大部分 IO 都归因于 jbd2,而导致高 IO 的原始进程归因于低得多的 IO 百分比。为什么?

这是iotop输出的示例(省略了 IO<1% 的其他进程):

在此处输入图片说明

process io disk

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

如何将 stdout 重定向到一个文件,并将 stdout+stderr 重定向到另一个文件?

我怎样才能达到

cmd >> file1 2>&1 1>>file2
Run Code Online (Sandbox Code Playgroud)

也就是说,stdoutstderr 应该重定向到一个文件吗?(file1) 而只有 stdout?(file2) 应该重定向到另一个(都在附加模式下)?

shell io io-redirection stdout stderr

34
推荐指数
2
解决办法
6386
查看次数

进程何时会进入“D”状态?

我正在使用“Linux 主机名 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU/Linux”

所有客户端机器都将使用瘦客户端,我将使用我的笔记本电脑进行工作,并将我的主目录从服务器安装到我的笔记本电脑。

如果我在我的笔记本电脑上打开 Firefox,firefox 窗口将不会打开,因为进程处于“D”状态,并且所有其他用户的机器都挂断并且 lockd 进程处于“D”状态,

ps ajx | 火狐

1  6187  4313  4313 ?   -1 D<    1030   3:16 /usr/lib/firefox-3.5b4pre/firefox-3.5

   7610  7622  7621  7610 pts/3      7621 S+    1030   0:00 grep firefox
Run Code Online (Sandbox Code Playgroud)

如果我检查系统日志

7 月 13 日 10:35:56 主机名内核:[222583.872059] 锁定:无法监控笔记本电脑

7 月 13 日 10:35:57 主机名内核:[222583.872059] 锁定:无法监控笔记本电脑

ps ajx | 锁定

根 9178 0.0 0.0 0 0 ? D< 13:35 0:00 [锁定]

根 11039 0.0 0.0 3340 796 …

linux process io

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

如何调整我的 Linux 桌面以提高响应速度?

我的经验是,在物理内存耗尽之前,Linux 可以正常工作。一旦使用交换空间,性能就会严重下降并且 GUI 变得无响应。

这个问题不限于特定的发行版或桌面,因为我已经尝试了一些(问题仍然存在)。

我该怎么办?

linux performance kernel io swap

30
推荐指数
3
解决办法
5939
查看次数

htop中颜色的含义

鉴于选择:

[ ] Detailed CPU time (System/IO-Wait/Hard-IRQ/Soft-IRQ/Steal/Guest)
Run Code Online (Sandbox Code Playgroud)

htop(Version 1.0.1) 中,颜色的含义是什么?

在下图中,我看到了很多我期望的 IO-Wait,但是从哪里确定颜色的含义。

显示颜色的 htop 屏幕截图

当然,这取决于使用的 htop 颜色主题(默认)和终端配色方案(此处为日光灯),但是有参考吗?

注意:这通常发生在我的服务器死之前,所以我想我会在我有一些时间等待盒子恢复时询问。

ubuntu io top htop

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

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

我正在比较以下内容

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万
查看次数

我可以禁用updatedb吗?

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

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

linux performance io updatedb

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

为什么不从 /dev/zero 读取计数为 IO_RBYTES?

我正在使用以下命令清空某些 Linux 4.x 操作系统上的硬盘驱动器:

sudo sh -c 'pv -pterb /dev/zero > /dev/sda'
Run Code Online (Sandbox Code Playgroud)

我打开另一个 tty 并开始sudo htop注意到这一点:

  PID USER      PRI  NI CPU%   RES   SHR   IO_RBYTES   IO_WBYTES S   TIME+  Command
 4598 root       20   0 15.5  1820  1596        4096    17223823 D  1:14.11 pv -pterb /dev/zero
Run Code Online (Sandbox Code Playgroud)

的值IO_WBYTES看起来很正常,但IO_RBYTES保持在 4 KiB 并且永远不会改变。

例如,我运行了一些其他程序

dd if=/dev/zero of=/dev/zero
cat /dev/zero > /dev/zero
Run Code Online (Sandbox Code Playgroud)

并且惊讶地发现它们中没有一个生成大量IO_RBYTESor IO_WBYTES

我认为这不是特定于任何程序的,但是为什么不读取/dev/zero和写入以/dev/{zero,null}计为 I/O 字节?

linux io devices null

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