我正在寻找一种方法来将进程磁盘 io 限制为设定的速度限制。理想情况下,该程序的工作方式类似于:
$ limitio --pid 32423 --write-limit 1M
Run Code Online (Sandbox Code Playgroud)
将进程 32423 限制为每秒 1 兆字节的硬盘写入速度。
我怎样才能达到
cmd >> file1 2>&1 1>>file2
Run Code Online (Sandbox Code Playgroud)
也就是说,stdout和stderr 应该重定向到一个文件吗?(file1) 而只有 stdout?(file2) 应该重定向到另一个(都在附加模式下)?
我正在使用“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 可以正常工作。一旦使用交换空间,性能就会严重下降并且 GUI 变得无响应。
这个问题不限于特定的发行版或桌面,因为我已经尝试了一些(问题仍然存在)。
我该怎么办?
鉴于选择:
[ ] 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 颜色主题(默认)和终端配色方案(此处为日光灯),但是有参考吗?
注意:这通常发生在我的服务器死之前,所以我想我会在我有一些时间等待盒子恢复时询问。
我正在比较以下内容
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 倍。它应该更快,不是吗?
许多新硬盘的物理扇区大小为 4096。是否可以使系统使用相同大小的逻辑扇区大小,而不是默认的 512 逻辑扇区大小?
它会加速批量读取和写入吗?哪里可以配置?
有updatedb必要吗?我从不使用locate,我的服务器往往有数以百万计的文件,这通常会使 updateb 运行很长时间并消耗 MySQL 和/或其他软件所需的 I/O。
我可以从 cron 中删除它并期望一切正常吗?(我的意思是在服务器上找到的常用软件:linux、cpanel、mysql、apache、php 等)。
我正在使用以下命令清空某些 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 字节?