我有一台家用服务器,有时会以大约 50% 到 70% 的高 CPU 使用率运行。
在htop,我最喜欢的进程管理器中,我可以按 CPU 使用率对进程进行排序,但通常没有任何进程消耗超过 0 % 的 CPU。另一方面,htop显示系统的整个 CPU 使用率,如前所述,大约为 50%。
我想对此有一个简单的解释,但我不知道。
也许有一些隐藏的过程?但即使以 root 身份运行它也不会显示更多进程。
编辑:
我查看了top,它显示(至少)另外两个进程:
230 root 20 0 0 0 0 R 37.4 0.0 107:06.59 md127_raid5
20403 root 35 15 0 0 0 D 9.6 0.0 2:45.78 md127_resync
Run Code Online (Sandbox Code Playgroud)
所以我的 mdadm raid 目前正在重新同步,当我显示/proc/mdstat. (见第一条评论。)
所以这把问题变成了:“为什么 htop 不显示与 top 相同的进程?”
我想创建一个别名,cd -它应该只是一个破折号 ( -)。我试过没有成功:
alias -='cd -' # bash: alias: -=: Invalid option
alias \-='cd -' # bash: alias: -=: Invalid option
alias '-'='cd -' # bash: alias: -=: Invalid option
alias '\-'='cd -' # bash: alias: `\-': Invalid alias name.
Run Code Online (Sandbox Code Playgroud)
前三个是相同的(只有不同的输入,但是 bash 将它们全部转换为alias带有单个参数的相同命令-=cd -),因此错误消息相同也就不足为奇了。我猜如果参数以破折号开头,它会被解析为一个标志而不是别名。
甚至可以-用作别名吗?
我正在调查htop,唯一具有 > 0.0% CPU 的进程(除了 htop 本身)是/usr/lib/udisks/udisks-daemon.
所以问题是:这是什么服务?我需要吗?(或者我什么时候需要它?)为什么要访问驱动器?
我在家庭服务器上使用 Ubuntu 12.04。有 5 个硬盘驱动器:一个带有操作系统的 SSD 和使用 mdadm 配置为 RAID5 的 4 个 HDD (Samsung HD204UI)。
我并不经常需要 RAID(比如说,平均每天大约一次);它包含多媒体数据和一些备份,因此我决定大部分时间将驱动器置于待机状态。
我使用 hdparm 将驱动器配置为在 20 分钟后自动降速,这里/dev/sda作为示例:
hdparm -S 240 /dev/sda
Run Code Online (Sandbox Code Playgroud)
命令的输出证实了这一点:
/dev/sdb:
setting standby to 240 (20 minutes)
Run Code Online (Sandbox Code Playgroud)
但问题是驱动器在上次访问后约 5 秒(而不是 20 分钟)后旋转,并且
hdparm -C /dev/sdb
Run Code Online (Sandbox Code Playgroud)
显示:
/dev/sdb:
drive state is: standby
Run Code Online (Sandbox Code Playgroud)
为什么驱动器没有按照配置等待 20 分钟?它与RAID设置有关吗?(我不这么认为...)
这个非常短的超时是有问题的,因为它是一个 RAID5,当我访问一个文件时,它会在四个驱动器周围按块分布。由于读取驱动器 2 时不需要驱动器 1,因此在下次使用时(从驱动器 3 读取后)它进入休眠状态。因此,驱动器始终上下旋转,导致吞吐量接近于零。
对于关心我的驱动器寿命的人:驱动器平均每天上下旋转一次是没有问题的,因为我更喜欢节省能源和热量而不是驱动器的健康状况(我使用 RAID5 并且内容是不是很重要)。
在全新的 Lubuntu 13.04 安装中,我从官方 ubuntu 存储库安装了 Qt5。但是这次安装Qt5却找不到QtQuick模块。我错过了什么?
qmlscene test.qml
Run Code Online (Sandbox Code Playgroud)
测试.qml:
import QtQuick 2.0
Rectangle {
}
Run Code Online (Sandbox Code Playgroud)
输出:
file:///home/.../test.qml:1 模块“QtQuick”未安装
我已经仔细检查了以下相关软件包是否已安装:
$ dpkg --get-selections | grep libqt5
libqt53d5:amd64 install
libqt5clucene5:amd64 install
libqt5concurrent5:amd64 install
libqt5core5:amd64 install
libqt5dbus5:amd64 install
libqt5declarative5:amd64 install
libqt5designer5:amd64 install
libqt5designercomponents5:amd64 install
libqt5gui5:amd64 install
libqt5help5:amd64 install
libqt5location5:amd64 install
libqt5network5:amd64 install
libqt5opengl5:amd64 install
libqt5opengl5-dev install
libqt5printsupport5:amd64 install
libqt5qml5:amd64 install
libqt5quick5:amd64 install
libqt5quickparticles5:amd64 install
libqt5quicktest5:amd64 install
libqt5script5:amd64 install
libqt5sensors5:amd64 install
libqt5sql5:amd64 install
libqt5sql5-mysql:amd64 install
libqt5sql5-sqlite:amd64 install
libqt5svg5:amd64 install
libqt5test5:amd64 install
libqt5v8-5:amd64 install …Run Code Online (Sandbox Code Playgroud) 我已经使用 USB 棒在我的 Thinkpad Edge (UEFI) 上安装了 ubuntu 12.04。我猜它是使用 EFI 安装的,因为出现了一个 GRUB 菜单,其中包含启动实时系统、安装或检查磁盘的选项。
当我启动笔记本电脑时,grub 只显示其命令行提示符“grub>”。
在chroot 环境中手动运行grub-install /dev/sda+update-grub后,它会在恢复模式下启动 grub,并显示“找不到文件”。
磁盘分区如下:
/dev/sda1: ntfs, 1.5GB, SYSTEM DRV
/dev/sda2: ntfs, 150GB, Windows7 OS
/dev/sda3: extended
/dev/sda6: ext4, 140GB, Ubuntu 12.04
/dev/sda5: ntfs, 10.7GB, Lenovo Recovery
/dev/sda4: ntfs, 16.8GB, a custom additional partition
Run Code Online (Sandbox Code Playgroud)
我猜测标有“SYSTEM DRV”的分区可能是 EFI 分区,但后来我读到 EFI 分区的类型是 FAT32。我这里没有任何 FAT32 分区!
所以我无法遵循任何解释如何安装具有 EFI 支持的 Grub2 的方法。他们都希望我将 EFI 分区挂载到 /boot/efi。我也不能只创建一个 EFI 分区,因为在大多数 How-Tos 中他们说它应该是第一个分区(至少它必须是主分区),但正如你所看到的,我已经有了一个分区 1。
难道只能在 EFI 硬件上使用普通的 Grub2 工具吗? …