由于这个答案和这些 网站,我已经非常接近让 Amazon Linux 在 VirtualBox 内启动。我已采取的步骤的快速概述:
ddEBS 卷的内容转移ssh到本地图像文件。grub-legacy-ec2软件包,而不是 grub2)。qemu-img。现在 VM 启动,grub 加载,并找到内核。但是当它尝试挂载根设备时失败:
dracut Warning: No root device "block:/dev/xvda1" found
dracut Warning: Boot has failed. To debug this issue add "rdshell" to the kernel command line.
dracut Warning: Signal …Run Code Online (Sandbox Code Playgroud) 更新:我更新了消息的标题,因为我最近在17163091968s. 这应该可以帮助人们调查症状以找到此页面。请参阅下面我(自我)接受的答案。
我在 VMware vSphere 数据中心有一堆 64 位 Ubuntu 10.04 LTS VM。VMware 工具已安装(vSphere 客户端显示“OK”)。
我已经看到一些 VM 挂起几次,并在 syslog 中出现以下错误。从 vSphere 检查情况时,控制台是黑色的,并且“Reboot guest”命令没有执行任何操作,因此我不得不重新启动 VM。
Dec 1 11:44:15 s0 kernel: [18446744060.007150] BUG: soft lockup - CPU#0 stuck for 17163091988s! [jed:26674]
Dec 1 11:44:15 s0 kernel: [18446744060.026854] Modules linked in: btrfs zlib_deflate crc32c libcrc32c ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs exportfs reiserfs xt_tcpudp iptable_filter ip_tables x_tables acpiphp fbcon tileblit font bitblit softcursor ppdev vga16fb psmouse …Run Code Online (Sandbox Code Playgroud) 目前正在运行一些虚拟机和“裸机”服务器。Java 运行速度很高 - 有时超过 400%+。服务器随机挂起,控制台中出现错误“java - 阻塞超过 120 秒” - kjournald 等。
我无法获得 dmesg 输出,因为出于某种原因,此错误仅写入控制台,我无权访问,因为这是远程托管的。因此我无法复制完整的跟踪。
我改变了它所在的环境 - 即使是物理服务器,它仍在发生。
根据http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Technical_Notes/deployment.html,我将 Hung_task_timeout_secs 更改为 0 以防误报。
另外, irqbalance 没有安装,也许它会有所帮助?
这是 Ubuntu 10.04 64bit - 与最新的 2.6.38-15-server 和 2.6.36 相同的问题。
cpu 或内存问题/没有交换空间会导致此问题吗?
这是控制台消息:
[58Z?Z1.5?Z840] INFUI task java:21547 blocked for more than 120 seconds.
[58Z?Z1.5?Z986] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z06Z] INFUI task kjournald:190 blocked for more than 120 seconds.
[58Z841.5?Z336] "echo 0 > /proc/sgs/kernel/hung_task_timeout_secs" disables this
message.
[58Z841.5?Z600] INFUI task …Run Code Online (Sandbox Code Playgroud) 一个硬盘从我的 RAID 中崩溃,我添加了一个新硬盘。
现在我想将 GRUB 安装到新硬盘上:使用grub-install /dev/sdb. 我收到这些警告:
Installing for i386-pc platform.
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
grub-install: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
Installation finished. No error reported.
Run Code Online (Sandbox Code Playgroud)
在update-grub2我得到:
Generating grub configuration file ...
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some modules may be missing from core image..
/usr/sbin/grub-probe: warning: Couldn't find physical volume `(null)'. Some …Run Code Online (Sandbox Code Playgroud) 我正在运行一些基准测试。我的基准运行程序监视实验之间的 dmesg 缓冲区,寻找可能影响性能的任何内容。今天它抛出了这个:
[2015-08-17 10:20:14 WARNING] dmesg 好像变了!差异如下: --- 2015-08-17 09:55:00 +++ 2015-08-17 10:20:14 @@ -825,3 +825,4 @@ [3.802206][drm]启用RC6状态:RC6开启,RC6p关闭,RC6pp关闭 [7.900533]r8169 0000:06:00.0 eth0:链接 [7.900541]IPv6:ADDRCONF(NETDEV_CHANGE):eth0:链接准备好 +[236832.221937] perf 中断时间太长 (2504 > 2500),将 kernel.perf_event_max_sample_rate 降低到 50000
经过一番搜索,我现在知道这与 linux 内核中名为“perf”的分析子系统有关。我认为我们不需要这个,所以我想完全禁用它。
再次搜索,我发现 sysctlperf_cpu_time_max_percent可以提供帮助。这里有人建议通过将其设置为 0 来禁用。在这里阅读更多内容:
perf_cpu_time_max_percent:
向内核提示应该允许使用多少 CPU 时间来处理性能采样事件。如果 perf 子系统被告知其样本超过此限制,它将降低其采样频率以尝试减少其 CPU 使用率。
一些性能采样发生在 NMI 中。如果这些样本意外地花费了太长时间来执行,则 NMI 可能会彼此堆叠在一起,以至于不允许执行任何其他操作。
0:禁用该机制。无论 CPU 时间有多长,都不要监视或更正 perf 的采样率。
1-100:尝试将 perf 的采样率限制到 CPU 的这个百分比。注意:内核计算每个样本事件的“预期”长度。这里的 100 表示预期长度的 100%。即使将其设置为 100,如果超过此长度,您仍可能会看到样本节流。如果您真的不关心消耗了多少 CPU,则设置为 0。
这听起来像 0 意味着不再检查分析采样率,但频率子系统保持运行(?)。
任何人都可以阐明如何使用 freq 完全禁用内核分析吗? …
我很想听听 serverfault 社区在生产中使用Ksplice的经验。
来自维基百科的快速简介:
Ksplice 是 Linux 内核的免费开源扩展,它允许系统管理员将安全补丁应用于正在运行的内核,而无需重新启动操作系统。
和
Ksplice 可以在不重启内核的情况下应用任何只需要修改内核代码的源代码补丁。与其他热更新系统不同,Ksplice 仅将统一的差异和原始内核源代码作为输入,并正确更新正在运行的内核,无需进一步的人工帮助。此外,利用 Ksplice 在系统最初启动之前不需要任何准备(例如,运行内核不需要经过专门编译)。为了生成更新,Ksplice 必须确定内核中的哪些代码已被源代码补丁更改。
所以有几个问题:
稳定性如何?您在内核的“无需重启实时修补”中遇到过什么奇怪的问题?内核恐慌还是恐怖故事?
我一直在几个测试系统上运行它,到目前为止,它一直在按照宣传的那样工作,但我对其他系统管理员在“全力以赴”并将其部署在我们的生产服务器上之前对 Ksplice 的体验感兴趣。
那么,有人在生产中使用 Kspice 吗?
更新:嗯,几个小时后没有看到关于这个问题的任何实际活动(除了一些赞许和收藏)。也许为了引发一些活动,我还会再问几个问题,看看我们是否可以继续讨论……
“如果您知道 Ksplice,您是否有理由不使用它?”
“你是否觉得它仍然过于前沿,未经证实或未经测试?”
“Ksplice 是否不适合您当前的补丁管理系统?”
“您讨厌拥有长时间(且安全)正常运行时间的系统吗?” ;-)
启动到 Linux 时,有时会很快清除一两行。我认为其中一些甚至没有出现在 dmesg 中。如果不出意外,我想在“登录:”提示之前取消清除。是否有我可以设置的内核命令或 sysctl 来防止这种情况发生,以便我可以在启动后在控制台屏幕上读取它们?
我有一台运行 CentOS 6.2 内核版本 2.6.32 的服务器,但我需要提高我的应用程序性能。
内核版本 3.4 有 x32abi 可以提高性能,所以我想升级到 3.4?是否可以?
我尝试下载内核编译和安装,但仍然看到相同的内核版本..
什么地方出了错?我遵循了下面链接中提到的过程。
http://www.tecmint.com/kernel-3-5-released-install-compile-in-redhat-centos-and-fedora/
作为序言,我在 AMD64 芯片组上使用带有内核 3.2 的 Debian Wheezy。我的机器有两个至强 E5-2690 内核。我设置了启动参数,以便一个 CPU 上的所有内核专用于单个进程。为此,我在 grub 中设置了 isolcpus=8,9,10,11,12,13,14,15。
到现在为止还挺好。现在假设我想对给定命令使用隔离的 CPU,简单地说,我将使用一个简单的无限循环:
$ taskset -c 8-15 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
到目前为止一切顺利,top 表明核心 8 的利用率接近 100%。现在假设我再次启动该命令:
$ taskset -c 8-15 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
现在 top 显示内核 9-15 保持空闲并且两个进程共享内核 8。如果相反,我这样做:
$ taskset -c 8 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
$ taskset -c 9 bash -c 'while true ; 做回声你好>/dev/null; 完毕' &
核心 8 和 9 各获得 …
我有一个运行 CentOS 7 的 Web 服务器,经过几周的正常运行时间,systemd 进程在该服务器上使用了近 4 GB 的 RAM。RAM 使用量以每天约 200MB 的速度稳步增长。该进程以及 systemd-logind 和 dbus-daemon 等相关进程在大部分时间也使用相当大的 CPU 块。我的另一个使用“init”而不是 systemd 的 CentOS 6 服务器没有这样的资源使用。
在下面的顶部示例中,在没有其他进程运行的正常 Web 服务期间,systemd、systemd-logind、systemd-journal 和 dbus-daemon 总共使用了 10.7% 的四核 CPU,而 systemd 消耗了 19%系统的 16GB 内存。这不是正常行为,经过四处搜索后,我没有发现其他人有此问题。什么可能导致这种资源占用?任何建议,将不胜感激。
在空闲期间从顶部输出(Web 服务除外):
top - 08:51:31 up 16 days, 13:43, 2 users, load average: 1.84, 1.39, 1.07
Tasks: 297 total, 2 running, 295 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.6 us, 3.6 sy, 0.0 ni, 90.6 id, 0.1 wa, 0.0 hi, 0.1 …Run Code Online (Sandbox Code Playgroud) kernel ×10
linux ×5
ubuntu ×2
affinity ×1
amazon-ec2 ×1
benchmark ×1
centos ×1
centos6 ×1
console ×1
cpu-usage ×1
disk-image ×1
dmesg ×1
grub ×1
grub2 ×1
linux-kernel ×1
redhat ×1
scheduler ×1
systemd ×1
update ×1
virtualbox ×1