一个多CPU服务器正在运行几个进程。 一个进程有一个线程,应该始终处于空转状态,使用100%的CPU分配。 我当前的方法(除了要求开发人员…)是在等待信息到达它的打开的文件描述符,并使用recvfrom(2)连续检查它的erno设置为EAGAIN和方法返回-1当没有数据包要从networking套接字读取时。 我不是很舒适的追溯生产设置,这是一个很好的方式来确定这个信息。 我正在探讨proc(5)并认为/proc/[pid]/fdinfo flags字段的值可能对检查该进程是否使用带有O_NONBLOCK模式的open(2)套接字非常有用。 目前我正在努力扭转这个价值。 我知道它代表文件状态和文件模式的按位或。 所以我想我可以检查源标题的常量open(2)在该特定的内核使用的值,然后按位或他们,直到我find一个值匹配什么在fdinfo 。 这似乎相当笨重,如果任何人都可以validation上述方法(我还不能)或提供一个更优雅的解决scheme,我会非常感激。 我也知道fnctl(2)可以将一个文件描述符设置为非阻塞状态,但是我正在处理相当于打开的时刻
每次我启动一个新的RHEL实例时,我都喜欢进行yum update ,以最新的系统开始。 但是,每次我尝试重新启动实例后,实例就再也无法启动了。 我解决了根本原因是内核更新,这里是重现问题的最小步骤: 启动一个新的RHEL 6.1实例 连接,然后运行: yum update kernel* reboot 系统停顿。 来自EC2pipe理控制台的系统日志没有什么帮助: … Please stand by while rebooting the system… md: stopping all md devices. xenbus_dev_shutdown: device/console/0: Initialising != Connected, skipping Restarting system. 没有提到内核恐慌,启动问题等,只是卡在那里。 从我可以读到的,看起来你不能使用EC2实例的默认内核。 如果这是真的,我怎么能避免意外更新内核与yum ,从而杀死我的实例,执行通用的yum update ?
那里有这样的命令吗?
我正在从磁盘顺序读取一个大文件,并试图了解读取过程中的iostat输出。 文件大小:10 GB 读取缓冲区:4 KB 预读(/ sys / block / sda / queue / read_ahead_kb):128 KB iostat输出如下 Device: rrqm/s wrqm/sr/sw/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.00 0.00 833.00 14.00 103.88 0.05 251.30 6.07 5.69 2.33 205.71 1.18 100.00 计算I / O请求的平均大小=(rMB / s除以r / s)给出了〜128KB,这是预读值。 这似乎表明,当读系统调用指定了一个4KB的缓冲区时,实际的磁盘I / O按照预读值发生。 当我将预读值增加到256KB时,iostat输出如下 Device: […]
偶尔我得到我的服务器运行FreeBSD 8.0 amd64失败,由于内存不足(与主板不兼容)模块。 每次发生这种情况,盒子都会挂上最后一张纸条,说明它会在15秒内自动重启 , 但是它永远不会 。 我该如何解决? 内核崩溃后,我需要电脑重新启动,无人看pipe。 (请不要build议更换内存,只要我拿到模块,我会的,但我需要一个更快的解决scheme,不需要我站在箱子旁边,只要按下重置button,每次崩溃。)
我试图了解在/proc/sys/kernel/random/下的linux内核参数,但是我有一些麻烦。 你能帮我弄点东西吗? 什么是boot_id参数使用? 我发现只是启动时生成的信息,但我无法find原因。 我知道熵池大小是恒定的(4096位),不能改变。 为什么数字这么小? 难道不是,1048576或更多? 也许是不是有很多熵可用? 它与第二个问题类似,但涉及到entropy_avail参数 – 不填充整个熵池的目的是什么? 当我检查参数时,它振荡大约1000位,但池大小为4096.当entropy_avail达到write_wakeup_threshold设置的阈值时,它稍微有点(通常为100),并且它再次上升到write_wakeup_threshold参数中指定的点。 那为什么我们需要这个4096的熵池呢? 我有什么理由增加或减lessread_wakeup_threshold和read_wakeup_threshold参数的值吗? 第一个只是睡觉从/dev/random设备想要熵的过程,但是当我将它设置为64,128或256时有什么区别? 它只是挂了一段时间,或者还有别的东西?
我正在寻找一种方法来可视化实时写入大文件(2GB)。 写入过程不只是将数据附加到文件的末尾。 相反,它像一个容器或像块设备一样。 所以数据写在文件的任何地方。 是否有一个工具,显示文件的哪些部分正在改变? 这并不需要很精确 – 事实上,我只需要知道它是在文件的开始,中间还是结尾。 最好的将是一个在CLI上工作的工具。 我无法find这样的工具,但也许有人可以帮助。
我有一个多用户的CentOS 6.1数据库系统,运行一个名为ABC的应用程序。 服务器是64位,8GB RAM和6个vCPU(在VMWare ESXi 4上)。 我们频繁转储到dmesg中,系统日志详细说明内核页面分配失败。 这些消息在这种情况下意味着什么? 我们该如何补救? Feb 5 08:10:52 Fruity kernel: ABC: page allocation failure. order:1, mode:0x20 Feb 5 08:10:52 Fruity kernel: Pid: 23588, comm: ABC Not tainted 2.6.32-131.17.1.el6.x86_64 #1 Feb 5 08:10:52 Fruity kernel: Call Trace: Feb 5 08:10:52 Fruity kernel: <IRQ> [<ffffffff8112016e>] ? __alloc_pages_nodemask+0x71e/0x8b0 Feb 5 08:10:52 Fruity kernel: [<ffffffff81159a52>] […]
我正在运行一个Linux 2.6.36内核,我看到一些随机错误。 像 ls: error while loading shared libraries: libpthread.so.0: cannot open shared object file: Error 23 是的,我的系统无法持续运行'ls'命令。 🙁 我注意到我的dmesg输出中的几个错误: # dmesg | tail [2808967.543203] EXT4-fs (sda3): re-mounted. Opts: (null) [2837776.220605] xv[14450] general protection ip:7f20c20c6ac6 sp:7fff3641b368 error:0 in libpng14.so.14.4.0[7f20c20a9000+29000] [4931344.685302] EXT4-fs (md16): re-mounted. Opts: (null) [4982666.631444] VFS: file-max limit 1231582 reached [4982666.764240] VFS: file-max limit […]
我看到我的OpenVZ Ubuntu 12.04服务器上的反复无休止的消息在kern.log中。 Mar 2 06:23:33 localhost kernel: Cannot read proc file system: 1 – Operation not permitted. Mar 2 06:24:04 localhost kernel: last message repeated 5082222 times Mar 2 06:25:05 localhost kernel: last message repeated 9939060 times Mar 2 06:26:06 localhost kernel: last message repeated 8501480 times Mar 2 06:27:07 localhost kernel: last message […]