4

电脑死机问题排查

 8 months ago
source link: https://juemuren4449.com/archives/findout-why-computer-crash
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

又是一次有意思的问题排查,每当以为接近了问题源头的时候却又峰回路转。

电脑开始死机

最近一段时间,我的台式机电脑突然开始死机,不是蓝屏,而是毫无征兆的突然死机,任何操作都无效,只能重启。

电脑买了几年了印象中就没死过机,最近的死机我认为有以下几种可能:

  • 内存或者独显的问题:内存是最近换过,独显也是最近加的
  • 系统问题:最近升级过 Windows 系统
  • 网络问题:死机时候的操作基本都是跟网络有关

死机情况也没有规律可循,有时候好几天死一次,有时候死机后重启电脑,电脑启动后刚一操作又死机了。

总共死机大概四五次,想着找个时间重新装一下内存和显卡,看能不能解决死机的问题,顺便清理一下机箱。

还没等我动手,前天晚上电脑又死机了,本来也没想着排查问题,但重启之后继续死机前的操作,结果再次死机了,看来不找一下原因是不行了。

死机的时候正好在跟朋友聊天,我说怀疑是网络问题,他说网络不应该让电脑死机,最多也就是断网,我觉得有道理。

那为什么我怀疑是网络问题呢?因为死机之前我是在用终端 ping 一个地址,结果就死机了。

本来想通过 Windows 的事件查看器查看死机前出了什么错误,但是发现在死机的时间点根本没有记录,只能手动排查了。

先说下电脑系统和使用到的软件:

  • 电脑系统是 Windows 11
  • 使用了「Quicker」这款快速启动软件来启动终端
  • 在粘贴网址的时候使用了「Ditto」这款剪贴板历史软件进行粘贴
  • 终端安装了「Clink」这款支持历史记录的插件

复现死机的过程如下:

通过 Quicker 打开终端,在终端输入 ping,然后使用 Ditto 粘贴网址,粘贴上马上就死机了。

多次尝试都能复现死机,接下来就是排查是什么原因导致的死机。

Ditto

一开始怀疑是 Ditto 的问题,因为用了比较久,数据库已经有 1.23G 了,担心是数据库过大导致的,所以先把数据库清空了。

重复上面导致死机的步骤,仍然会死机,暂时排除 Ditto。

Clink

又怀疑是终端安装了 Clink 导致的,但是卸载插件后立马就死机了,重启后测试仍然死机,暂时排除 Clink。

另一台电脑

这时候有点没头绪了,用另一台电脑进行测试,发现不会导致死机。

不同之处在于终端的启动方式,死机的电脑是通过 Quicker 启动的终端,而没问题的电脑是鼠标右键菜单启动的。

Quicker

回到死机的电脑,通过鼠标右键菜单启动终端后测试并未死机,到这里就怀疑是 Quicker 的问题。

查看了下 Quicker 启动终端的动作,如下如所示:

终端

我的终端默认配置是「命令提示符」,所以我就将 Quicker 启动终端改为了启动命令提示符:

命令提示符

修改之后再次测试,果然不死机了。

在排查过程中,我还做了以下测试:

  • 在开始菜单搜索并启动终端
  • 直接去 C:\Program Files\WindowsApps\Microsoft.WindowsTerminal_1.18.3181.0_x64__8wekyb3d8bbwe 目录启动终端

上述方式启动的终端经测试都不会导致死机。

一开始我以为 Quicker 启动的终端输入任意字母后再调用 Ditto 才会导致死机,但是后面测试的时候发现只要是 Quicker 启动的终端,输入字母后切换到别的程序再切回来就会死机。所以跟 Ditto 没关系,而是因为打开 Ditto 相当于从终端切出去了。

搜狗输入法

为了彻底搞清楚死机的原因,我使用了虚拟机来进行测试,毕竟电脑一直强制关机重启也不好。

在虚拟机里,我安装了 Quicker、Clink 和 Ditto,模拟电脑的操作,但是并没有出现死机的情况。

测试了好久也没复现,就在我准备放弃的时候,突然想到,还有个软件我没考虑到,那就是搜狗输入法。赶紧在虚拟机里安装了搜狗输入法,然后测试了一下,果然死机了!

再进一步测试,我发现使用 Quicker 启动终端后,如果输入法是中文状态,这时候在终端里打字,即使没有选中文本而是删除输入的内容,切换到别的程序再回到终端就会死机。

死机过程

如果是使用英文状态输入就不会出现死机的情况,太离谱了。

我这次碰到的死机问题,可以说是环环相扣:

  • 首先电脑需要安装 Quicker 和搜狗输入法
  • 其次用 Quicker 配置了终端启动
  • 再然后用 Quicker 启动了终端
  • 接着用搜狗输入法在中文状态下输入内容
  • 最后从终端切换到其他软件

但凡中间有一个对不上,电脑就死不了机。

其实到最后也没找到根本原因,但是已经知道了是 Quicker 启动的终端和搜狗输入法的联合作用下导致的死机。

也难怪最开始我认为死机跟网络有关,因为打开终端基本上不是 ping 网址就是拉代码,肯定是跟网络有关系,但是这是表象,现在清楚了,随便打个字母都会导致死机,跟网络完全没关系。

但我是没看出来 Quicker 启动的终端和开始菜单搜索启动的终端有什么不同,暂时不继续深究了,如果有大佬知晓原因的话还请在评论区赐教。

不使用 Quicker 启动终端,而是启动命令提示符,或者使用其他方式启动终端。

总结了几个排查问题的小技巧:

  • 重复出问题之前的操作,看是否能复现问题
  • 通过控制变量进行排查
  • 使用类似设备进行对比测试
  • 通过虚拟机模拟环境进行重复测试
  • 只要出现过问题,大概率会再次出现
  • 只要下功夫,一般都能够找到解决办法

找到电脑死机的原因固然开心,但排查问题的过程何尝不让人觉得有趣和激动呢。

贴一下之前的一篇问题排查文章:「Mac 下 Chrome 浏览器右键菜单需双击的问题」。

本文由 掘墓人 创作,采用 CC BY-NC-ND 4.0 DEED ,转载或翻译请注明出处。
最后编辑时间为: 2023年12月31日

2c867b6c99c5da99399ae1b13bb0ed41.jpg
欢迎关注我的公众号,及时获取最新文章推送。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK