*注意:如果您的服务器由于内核混乱而仍然存在问题,并且您无法重新启动 - 建议在您的系统上安装 gnu date 的最简单解决方案是:date -s now。这将重置内核的内部“time_was_set”变量并修复 Java 和其他用户空间工具中的 CPU 占用 futex 循环。我已经在我自己的系统上跟踪了这个命令,并确认它正在做它在锡上所说的 *
尸检
Anticlimax:唯一死掉的是我的 VPN (openvpn) 链接到集群,所以在它重新建立时有令人兴奋的几秒钟。其他一切都很好,并且在闰秒过去后启动 ntp 就顺利进行了。
我在http://blog.fastmail.fm/2012/07/03/a-story-of-leaping-seconds/写下了我当天的全部经历
如果您在http://my.opera.com/marcomarongiu/blog/2012/06/01/an-humble-attempt-to-work-around-the-leap-second查看 Marco 的博客- 他有一个解决方案使用 ntpd -x 在 24 小时内调整时间变化以避免 1 秒跳过。这是运行您自己的 ntp 基础架构的另一种涂抹方法。
就在今天,2012 年 6 月 30 日星期六 - 在格林威治标准时间开始后不久开始。我们在由不同团队管理的不同数据中心的少数服务器都变黑了 - 不响应 ping,屏幕空白。
他们都在运行 Debian Squeeze - 从库存内核到自定义 3.2.21 构建的所有内容。大多数是戴尔 M610 刀片,但我也刚刚丢失了戴尔 R510,其他部门也丢失了其他供应商的机器。还有一个旧的 IBM x3550 崩溃了,我认为它可能无关紧要,但现在我想知道。
我确实从中获得了屏幕转储的一次崩溃说:
[3161000.864001] BUG: spinlock lockup on CPU#1, ntpd/3358
[3161000.864001] lock: ffff88083fc0d740, .magic: dead4ead, .owner: imapd/24737, .owner_cpu: …Run Code Online (Sandbox Code Playgroud) 我有一些由 OVH(法国服务提供商)托管的专用服务器。操作系统:Ubuntu 12.04 x64
几个月前,我的一台服务器崩溃了。唯一奇怪的是系统日志中的一些“ASCII NUL”字符:
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
在我的服务提供商的帮助下,我们检查了:
一切正常,所以我的服务提供商建议更换服务器的主板并更新内核(我们做到了)。但此后,该服务器又崩溃了两次,系统日志中的字符相同。
没有更多的解释,我们决定更改此服务器(计划在几周内进行)。
但是,问题是,今晚,这发生在另一台服务器上。相同的崩溃,系统日志中的相同字符,没有解释。
有人知道我们应该检查什么吗?是硬件问题还是软件问题?
我有一台 Windows Server 2012 R2 虚拟机;是的所有更新。其他软件包括 Microsoft SQL Server 2014(在以前的 VM 上是 2012)。Web 托管公司将 xenpci.sys(EJBPV XenPCI 驱动程序(已检查构建),James Harper)作为其在所有 VM 和 Plesk 上的默认安装的一部分。
操作系统会定期挂起、蓝屏或重新启动。我确实得到了小型转储,但并非总是如此。通常的问题是:
错误:CRITICAL_STRUCTURE_CORRUPTION
特定的顶级文件(显然不是原因)各不相同:win32k.sys、ntoskrnl.exe、xenpci.sys(Xen 驱动程序,虽然只出现了几次)和 ndis.sys。
OSR(开放系统资源)分析器没有多大帮助。WhoCrashed 分析器更有帮助。
它指出:
已发现并分析了 17 个故障转储。本报告中仅包含 10 个。已确定第三方驱动程序会导致您的计算机系统崩溃。强烈建议您在其公司网站上检查这些驱动程序的更新。单击下面的链接以使用 Google 搜索这些驱动程序的更新:
xenpci.sys (EJBPV XenPCI Driver (Checked Build), James Harper)
Run Code Online (Sandbox Code Playgroud)
我试图推动网络托管公司研究该主题,但他们可以空手而归。我不相信 Xen 驱动程序有错。WhoCrashed 发现了它,我认为这只是因为那是最后几次驱动程序,而且它是第三方,所以它有罪。我没有写 WhoCrashed,所以很难进一步评论。
我的问题是如何解决问题。
在过去的几年里,网络托管公司已经尝试给我提供两个新的虚拟机。问题转移了。我安装了 SQL Server,但默认安装的是 OS 和 Plesk。好的,还有邮件服务器软件。网络托管公司还告诉我,他们没有其他客户有类似的抱怨。他们多次运行磁盘测试。磁盘健康状况良好。
我没有检查注册表的健康状况,但问题在安装过程中发生并且经常发生,所以我不得不打折。我现在在我的第三个或第四个虚拟机上。
同样,我提到 Xen 是因为 WhoCrashed 提到了它,但我不相信这是原因,其他客户确实使用它。系统有足够的内存和存储空间,所以这不是问题。
更新:以下是网络托管公司对我的查询的一些回答。
通常情况下,卸载驱动程序后,VM 的性能会下降。硬件节点可能存在一些同步问题。
我使用的是检查版本还是发布版本?
您正在使用测试签名的版本,与开发人员网站上的版本相同。
我怎么知道?设备管理器中的 Xen PCI 属性对话框没有以一种方式或另一种方式说明。设备管理器中的条目是唯一的位置吗?我检查了程序和功能,但没有看到任何内容。
您可以在添加或删除程序下检查版本。请参阅随附的快照。
我如何/在哪里可以找到他们网站上最新版本的位置?
开发人员的站点不工作 - http://www.meadowcourt.org/downloads/ 你可以从这里下载最新的签名版本 - http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-司机 …
服务器在多次“内存不足”消息后崩溃,我试图查明罪魁祸首。如果它在用户空间 - 哪个进程。如果它在内核中 - 哪个内核模块。
我试图找出如何使用崩溃实用程序来调查是什么触发了服务器上的 OOM。
作为安装一对新服务器的一部分,我开始了一个 14TB DRBD设备的初始化。大约在那个时候,在使用 DRBD 同步器速率配置并启动和关闭一些绑定的网络接口时,其中一台服务器崩溃了。在 30 秒的时间内,它产生了 39 条Out of memory: Kill process ####消息。然后它崩溃了:
Kernel panic - not syncing: Out of memory and no killable processes...
Run Code Online (Sandbox Code Playgroud)
系统崩溃触发了kdump。现在我有一个不错的vmcore.flat文件,应该可以直接使用它来调查问题,但是我很难找出所有内存的去向。
我知道的唯一资源是Dedoimedo 的网站,它有很好的说明,以及内核崩溃手册。这些也恰好是答案中建议的唯一资源,所以我认为这crash是唯一的调查方法。
如果有另一种方式对事件进行事后分析,我愿意接受。这只是crash我所知道的唯一实用程序。我现在拥有的只是vmcore.flat文件,我需要知道的是哪个组件占用了所有内存。我怀疑是内核模块问题,更具体地说是绑定模块之一(因为它在我关闭接口时被触发)、DRBD 模块(在 CentOS 6.3 上用树构建的版本 8.3.15),或其中一个10G 以太网模块(mlnx_en构建在树外,即我关闭的接口,或树内bnx2x,即保持活动状态的接口)。我只需要知道是否有办法验证我的怀疑。
到目前为止,我只设法使用crash实用程序提取了以下信息:
检查使用了多少内存
$ crash /usr/lib/debug/lib/modules/2.6.32-279.5.2.el6.x86_64/vmlinux vmcore.flat
....
crash> …Run Code Online (Sandbox Code Playgroud) 又出事了!我有 4 个定期崩溃的服务器,并且没有信息打印到系统日志或串行控制台。
此外,Linux kdump 服务不会将核心转储写入/var/crash.
这是我尝试过的。
我的系统是带有最新内核的 Scientific Linux 6.5。
[root@host1 ~]# uname -r
2.6.32-431.11.2.el6.x86_64
[root@host1 ~]# cat /etc/issue
Scientific Linux release 6.5 (Carbon)
Run Code Online (Sandbox Code Playgroud)该文件/etc/kdump.conf是包含默认设置的 vanilla 文件。大多数行都被注释掉了,只有两个活动行path和core_collector。
#net my.server.com:/export/tmp
#net user@my.server.com
path /var/crash
core_collector makedumpfile -c --message-level 1 -d 31
#core_collector scp
Run Code Online (Sandbox Code Playgroud)我确保kdump服务正在运行,并且kdump不需要重建我的initrd.
[root@host1 ~]# chkconfig --list kdump
kdump 0:off 1:off 2:off 3:on 4:on 5:on 6:off
[root@host1 ~]# /etc/init.d/kdump restart …Run Code Online (Sandbox Code Playgroud)我的服务器大约每周崩溃一次并且没有留下任何关于导致它的原因的线索。我已经检查过/var/log/messages,它只是在某个时候停止记录,并在我执行硬重启时从计算机发布信息开始。
有什么我可以检查的东西或我可以安装的软件可以确定原因吗?
我正在运行 CentOS 7。
这是我的唯一错误/问题/var/log/dmesg:https : //paste.netcoding.net/cosisiloji.log
[ 3.606936] md: Waiting for all devices to be available before autodetect
[ 3.606984] md: If you don't use raid, use raid=noautodetect
[ 3.607085] md: Autodetecting RAID arrays.
[ 3.608309] md: Scanned 6 and added 6 devices.
[ 3.608362] md: autorun ...
[ 3.608412] md: considering sdc2 ...
[ 3.608464] md: adding sdc2 ...
[ 3.608516] md: sdc1 has different UUID to sdc2
[ 3.608570] md: adding …Run Code Online (Sandbox Code Playgroud) 有没有办法确定RHEL7服务器是否通过systemctl(或reboot / shutdown别名)重新启动,或者服务器是否崩溃?Pre-systemd 这很容易用 确定last -x runlevel,但用 RHEL7 就不太清楚了。
我的服务器在几天内已经发生了两次,我的服务器完全关闭,这意味着 http、ssh、ftp、dns、smtp,基本上所有服务都停止响应,就好像服务器已经关闭一样,除了它仍然响应 ping ,这是最让我感到困惑的地方。
我确实有一些 php 脚本会在短时间内在服务器上造成巨大的负载(cpu 和内存),由一小群用户使用,但通常服务器对这些突发“生存”得很好,当它出现故障时永远不会与这样的使用高峰重合(我不是说它不能相关,但它不会在那些之后发生)。
我不是要你神奇地告诉我这些崩溃的最终原因,我的问题是:是否有一个进程的死亡可能会导致所有这些服务同时关闭?有趣的是,除了 ping 之外,所有网络服务都关闭了。如果服务器 100% 的 CPU 被某个进程占用,它也不会响应 ping。如果 apache 由于(例如)损坏的 php 脚本而崩溃,那只会影响 http,而不影响 ssh 和 dns.... 等。
我的操作系统是 Cent OS 5.6
最重要的是,在硬重启服务器后,我应该查看哪些系统日志?/var/log/messages 不会显示任何可疑内容。
我有一个 64 位服务器,但只有 256MB 的 RAM。因此,我使用 fast-cgi 移至 nginx 服务器以连接到 PHP。我正在运行 PHP 5.3.6。
问题是,每隔两三天,当我尝试访问任何 PHP 页面时,就会出现服务器内部错误。唯一的方法是手动重启 php-fpm。这意味着我应该设置一些错误的参数,导致它窒息。下面我列出了相关的配置。
/etc/php-fpm.conf :-
include=/etc/php-fpm.d/*.conf
log_level = error
;emergency_restart_threshold = 0
;emergency_restart_interval = 0
;process_control_timeout = 0
Run Code Online (Sandbox Code Playgroud)
/etc/php-fpm.d/www.conf :-
[www]
pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 5
pm.max_requests = 500
Run Code Online (Sandbox Code Playgroud)
/etc/nginx/php.conf :-
location ~ \.php {
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri; …Run Code Online (Sandbox Code Playgroud) 我目前在读高中并经营我们学校的网站。今年夏天,我们的系统管理员被诊断出患有癌症,他去接受治疗,所以我陷入了一个有趣的境地。
我真的不确定这个网络服务器有什么问题,但我很想得到你的想法/教学/意见,因为我正在努力快速学习,以便我可以提供帮助。
服务器运行/正在运行 FreeBSD,这可能没有任何意义,因为这是一个硬件问题。我曾经知道服务器中有五个相同的驱动器(这是否意味着 Raid-5?),但在崩溃时它有三个工作驱动器(“以降级模式运行?”)。
大约一周前,服务器无法启动,因为它只找到了 1 个逻辑驱动器。我运行了配置实用程序并看到了这个:
我想那个活的驱动器上仍然会有一些数据,对吧?(我确实有网络文件的备份,只是没有实际的操作系统和网络服务器设置)。
如果我需要添加任何信息以便您可以更好地解释发生在我身上的事情,我非常愿意这样做。我只是想了解发生了什么,这在某一时刻是什么,以及我如何采取措施来解决这个问题。
太感谢了。