服务器定时重启问题排查

2023-10-30

上周主要处理了,两个生产问题。工作电脑没带,主要简述一下。

  1. 每天的20:13分linux服务器(centos7.4)重新启动
  2. 应用服务接口类交易,耗时20秒,频发

这里先说一下服务器重启的问题。
此次重启共发生三天,第一次主要排查管控平台,发现服务器漂移了触发重启。第二天再次发生,未漂移,于是引发重视,开始排查服务器问题。
一般来说linux服务器除非人为操作,自己是不可能主动重启的,要么宕机,要么正常。
因此首先排查当前服务器上已部署的应用,发现只存在一个基于Docker 容器化的一个微服务工程,容器是以服务的形式提供给别的部门使用。因此不便排查应用日志,联系使用人沟通应用状态,先自行排查。
抛开应用只能查看服务器系统日志,系统定时脚本:

#查看定时任务
crontab -l
#查看定时任务执行日志
cat /var/log/cron
#查看定时任务脚本
cd /etc/cron.d/ 
ll
#其他可能出发定时的文件
ls /etc/cron.*
cat ....

经过排查,未发现有任何定时任务会触发服务器重启现象;
继续排查服务器系统日志:

more /var/log/message   #message可能有很多个,按时间戳查询自己需要的日志

通过message能够看到在每天的20:13分,服务器开始停止相关服务,然后紧接着进行启动,执行到开始记录系统日志后,不在有任何日志输出。通过message未发现问题。
开始排查系统 crash ,使用 crash 分析为工具进行分析后,发现每天都是因为空指针的调用触发了服务器的crash操作导致系统服务器重启。联系应用同事,经过沟通,当前部署环境主要未演示使用,未开放,应用存在大量的空指针现象。
因此当晚进行验证。测试通过。此次问题解决。
总结:

问题算是解决了,但也暴露了很多其他问题,最明显的就是在进行crash分析的时候大量的汇编命令不熟,只能百度着一个一个的进行解读。
对于Docker的理解上可能还有些欠缺,一直以为docker容器算是一个小型的linux服务器,通过类似虚拟化的方式进行搭建,从这次的排查来看应该不是这么简单的,容器对于linux宿主机的依赖或者说影响还是比较大的,容器内的服务进程可以说是运行在容器上,也可以说是运行在宿主机上,和虚拟机的方式差异不小

PS:感谢两位同事的帮助。

crash 安装步骤:

cd /usr/local/src/
wget http://linuxsoft.cern.ch/centos-debuginfo/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-693.el7.x86_64.rpm
wget http://linuxsoft.cern.ch/centos-debuginfo/7/x86_64/kernel-debuginfo-3.10.0-693.el7.x86_64.rpm
rpm -ivh /usr/local/src/*.rpm
yum install crash
crash /lib/debug/lib/modules/3.10.0-693.el7.x86_64/vmlinux 内核日志文件

汇编指令参考:https://blog.csdn.net/qq_40531974/article/details/83897559
crash命令参考:https://blog.csdn.net/zhongnanjun_3/article/details/21074329
linux内核相关参考: https://www.dedoimedo.com/computers/crash-book.html#download

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器定时重启问题排查 的相关文章

  • 在非实时操作系统/内核上执行接近实时任务的最佳方法是什么?

    在一台 GNU Linux 机器上 如果想要执行 实时 亚毫秒级时间关键 任务 您几乎总是必须经历漫长 复杂且容易出现问题的内核补丁过程 以提供足够的支持 1 http en wikipedia org wiki RTLinux Backg
  • 如何在文件夹中的 xml 文件中 grep 一个单词

    我知道我可以使用 grep 在这样的文件夹中的所有文件中查找单词 grep rn core 但我当前的目录有很多子目录 我只想搜索当前目录及其所有子目录中存在的所有 xml 文件 我怎样才能做到这一点 我试过这个 grep rn core
  • Bash - 比较 2 个文件列表及其 md5 校验和

    我有 2 个列表 其中包含带有 md5sum 检查的文件 即使文件相同 列表也具有不同的路径 我想检查每个文件的 md5 和 我们正在讨论数千个文件 这就是为什么我需要脚本来仅显示差异 第一个列表是普通列表 第二个列表是文件的当前状态 我想
  • 比较linux中的两个未排序列表,列出第二个文件中的唯一项

    我有 2 个包含号码列表 电话号码 的文件 我正在寻找一种列出第二个文件中第一个文件中不存在的数字的方法 我尝试过各种方法 comm getting some weird sorting errors fgrep v x f second
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 使用 --prof 选项创建多个日志文件而不是一个 v8.log 的节点

    我正在尝试使用 prof 选项来分析我的 Node 应用程序 但我发现不是一个单一的 v8 log 文件 而是使用诸如isolate 0x9582b40 v8 log isolate 0xa1cab78 v8 6049 等前缀创建的多个文件
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 如何从程序内部获取指向程序的特定可执行文件部分的指针? (也许是诽谤)

    我在 Linux 环境中 需要编写一个程序来检索放置在其可执行文件的某个部分中的一些数据 那么 如何从程序内部获取指向程序某个部分 通过其名称 的指针呢 我知道可以使用elf getdata 将节的索引作为参数传递给 get 和Elf Da
  • 如何通过不同的接口路由 TCP/IP 响应?

    我有两台机器 每台机器都有两个有效的网络接口 一个以太网接口eth0和 tun tap 接口gr0 目标是使用接口在机器 A 上启动 TCP 连接gr0但然后让机器 B 的响应 ACK 等 通过以太网接口返回 eth0 因此 机器 A 发出
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • 无法连接到 Azure Ubuntu VM - 公钥被拒绝

    我们在 Azure 上使用 Ubuntu VM 一段时间了 很少遇到任何问题 然而 其中一台虚拟机最近出现了问题 出乎意料的是 Ubuntu VM 开始拒绝公钥 ssh i azure key email protected cdn cgi
  • C++ Linux GCC 应用程序中的 GUID

    我有很多服务器运行这个 Linux 应用程序 我希望他们能够生成一个碰撞概率较低的 GUID 我确信我可以从 dev urandom 中提取 128 个字节 这可能没问题 但是有没有一种简单易用的方法来生成与 Win32 更等效的 GUID
  • 我可以在 Ubuntu 上使用 Homebrew 吗?

    我只是尝试使用 Homebrew 和 Linuxbrew 在我的 Ubuntu 服务器上安装软件包 但都失败了 这就是我尝试安装它们的方法 sudo apt get install build essential curl git m4 r
  • 虚拟内存澄清——大连续内存的分配

    我有一个应用程序 我必须在 Windows 上分配 使用运算符 new 相当大的内存空间 数百 MB 该应用程序是 32 位 我们现在不使用 64 位 即使在 64 位系统上也是如此 我启用了 LARGEADDRESSAWARE 链接器选项
  • 在 Windows / Linux 中创建 Mac 包

    我自己努力制作一个 r 包 我按照 stackoverflow 中上一个问题的说明进行操作如何为外行开发软件包 http cran r project org bin windows Rtools 以下是我根据上一个问题采取的步骤 在新的
  • 如何在C程序中直接改变显存映射来绘制像素(无需库函数)

    是否可以通过使用 C 程序更改 RAM 中屏幕 视频即监视器 内存映射中的值来显示黑点 我不想使用任何库函数 因为我的主要目标是学习如何开发简单的操作系统 我尝试访问起始屏幕内存映射 即 0xA0000 在 C 中 我尝试运行该程序 但由于
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 为什么我的代码在编译用于分析 (-pg) 时在多线程下运行比在单线程下运行慢?

    我正在写一个光线追踪器 最近 我在程序中添加了线程 以利用 i5 四核上的附加内核 奇怪的是 应用程序的调试版本现在运行速度变慢 但优化后的构建运行速度比添加线程之前更快 我将 g pg 标志传递给 gcc 以进行调试构建 并将 O3 标志
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015

随机推荐

  • 中阳:ChatGPT横空出世,或迎来“安卓时刻”

    ChatGPT横空出世 写代码 写情书 写文章 做题 它啥都会 会被人工智能替代的行业 由人工智能实验室OpenAI发布的对话式大型语言模型ChatGPT在各大中外媒体平台掀起了一阵狂热之风 继 AI 绘画之后 由 OpenAI 上线的 C
  • Reference vs Pointer

    参考自Dan Saks的文章 An Introduction to References References and const The key insights I believe the key insight into why C
  • 用git和idea推送本地项目到远程仓库

    方式一 git命令方式 1 鼠标右键 Git Bash Here 2 初始化仓库 git init 3 配置签名 git config user name Zhang3 git config user email zhang3 163 co
  • WebFlux出现接口已返回成功,但查询时数据未改变的问题

    问题描述 在使用WebFlux时遇到一个很奇怪的问题 先调用禁用账号接口 接着在进行查询该数据 结果页面显示数据未改变 在点一次时页面数据才刷新 即连续点两次查询接口 才能看到修改后的数据 相关代码 前端 const disableAcco
  • 商城登录后端

    二 登录 1 用户名和密码 用户名和密码的格式验证可以不需要在后端进行 在前端服务器判断就可以 2 图片验证码与验证 import string redis from captcha image import ImageCaptcha cl
  • Email Error - You have exceeded the storage limit on your mailbox

    Description You may receive an error You have exceeded the storage limit on your mailbox Delete some items from your mai
  • 前端--三种插件用来解析mardowm,转化成为html语法

    前端 三种插件用来解析mardowm 转化成为html语法 使用方式十分简单 快捷 参考地址 1 markdown js 下载地址 https github com evilstreak markdown js div div
  • IBCS虚拟专线公网IP在公司内部搭建ERP系统按教程

    企业资源计划 ERP 系统是现代企业不可或缺的组成部分 可以将各个业务领域的信息整合到一个系统中 以实现信息共享 协调和协作 然而 随着企业规模的扩大 企业的ERP系统也需要相应地进行升级和扩展 因此 使用IBCS虚拟专线公网IP在公司内部
  • 五. Zuul 限流

    目录 一 spring cloud zuul ratelimit 基础解释 二 实现案例 1 pom 添加依赖 2 yml 配置 3 redis 配置类 4 自定义Zuul过滤器 5 自定义限流策略key 6 在当前Zuul服务中编写Con
  • string查找和替换

    string查找和替换 查找 查找指定字符串是否存在 替换 在指定的位置替换字符串 函数原型 int find const string str int pos 0 const 查找str第一次出现位置 从pos开始查找 int find
  • python读取串口数据 绘图_3.使用串口读取IMU数据并通过话题发布

    0x00 简介 我们的IMU扩展板是支持通过串口方式来读取IMU数据 现在代码已经开发完成 前面文章介绍的都是将IMU板插在树莓派上 然后使用树莓派的IIC接口来数据通信 因此不需要额外接线就可以发布imu话题的 若使用串口进行通信的话 若
  • 在Linux下安装jdk的步骤

    1 下载安装包 http www oracle com technetwork java javase downloads jdk8 downloads 2133151 html 版本 jdk 8u191 linux x64 tar gz
  • 确实卷,公司新来的00后卷王,我们这帮老油条真干不过.....

    都说00后躺平了 但是有一说一 该卷的还是卷 这不 前段时间我们公司来了个00后 工作没两年 跳槽到我们公司起薪18K 都快接近我了 后来才知道人家是个卷王 从早干到晚就差搬张床到工位睡觉了 最近和他聊了一次天 原来这位小老弟家里条件不太好
  • C#反编译工具:ILSpy

    参考 反编译软件ILSpy的使用教程 TONY5388的博客 CSDN博客 ilspy exe 总结 以前以为dnspy是反编译的 结果发现iLSpy是真的好用 可以选择生成不同C 版本的源码
  • SQLite数据库总结

    参考网址 https www cnblogs com stephen liu74 archive 2012 02 29 2328348 html 3种工作模式 1 SQLite完全内存数据库 在SQLite中 数据库通常是存储在磁盘文件中的
  • 【python】KNN模型训练及应用01

    目的应用 让电脑代替人工对图片分类 1 数据加载 from sklearn datasets import load iris from sklearn model selection import train test split fro
  • 今天终于知道了如果用layero获取layer弹窗中的子元素了

    通过layer弹出的ifram 想要获取里面的元素并且绑定相应的事件 以前一直不知道layero是什么意思 可以通过下面的代码自己体会一下 layer open type 2 title 文件管理 shadeClose true shade
  • 基于XStream的JavaBean与XML相互转换

    相对于JAXB XStream更简洁一些 常用注解 XStreamAlias 定义xml节点名 1 引入XStream依赖
  • 数据清洗分析导出遇到的一些问题

    本文简单记录一个学习过程 无技术含量 勿喷 环境 ambari 2 6 1 spark 2 1 python 3 6 oracle 11 2 sqoop 1 4 最近一直在测试数据采集 清洗 分析 导出 展示的一系列的工作 主要数据流程如下
  • 服务器定时重启问题排查

    上周主要处理了 两个生产问题 工作电脑没带 主要简述一下 每天的20 13分linux服务器 centos7 4 重新启动 应用服务接口类交易 耗时20秒 频发 这里先说一下服务器重启的问题 此次重启共发生三天 第一次主要排查管控平台 发现