一台Linux服务器突然出现了随机的崩溃和重启

生产环境一台Linux服务器突然出现了随机的崩溃和重启,这给公司的业务造成了很大的影响。我在检查了系统的硬件和系统日志后发现,服务器在崩溃之前会出现存储空间告警,但在检查了硬盘使用情况后并未发现任何异常。我怀疑这个存储告警与硬盘容量或使用率的警告不是相同的问题,于是开始排查Linux操作系统的各个方面来找到问题的根源。经过一段时间的排查,我最终发现,在服务器上安装的一个应用程序定期将大量的缓存数据写入本地目录,但由于系统缺少定期清理缓存数据的功能,导致目录占用了非常大的空间,超过了系统分配的硬盘空间,进而导致了系统的崩溃和重启。为了解决问题,我首先清理了之前应用程序产生的缓存数据,然后为应用程序设置了自动清理缓存的周期,以确保未来不再出现此类问题。此外,我还调整了存储告警和硬盘使用率的警告,确保系统可以及时地监控到问题的出现,并采取措施防止系统崩溃和重启。

答案都出来了🍓🍓,打卡,求采纳
看来日常工作情况下需要定期检查服务器的硬件和系统日志的基础上,还需要进一步加强了对存储空间和系统崩溃的监控啊

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/343709
  • 除此之外, 这篇博客: 看完这篇缓存双写分析,你面试不再有问题呢~中的 今天天朗气清,吃饱撑之余,回想了想之前面试阿里的时候,面试官经常会问的缓存和数据库双写一致性问题怎么保证,同时一个好的实践对业务来说是有很大提升,我在网上看了很多博客写关于这块的内容,很多直接拷贝过来的不说,写的也是站在一个小白的立场上,基本看的云里雾里的,那我就今天讲一讲我熟悉的业务场景,以及面对这些业务场景,我们一般会用什么解决方案来处理,前提要记住一点,面试官问你一些比较刁钻的问题的时候,一定是针对业务逻辑去做的,在实际开发中,我们更偏向于舍我求全的方案,没有一个解决方案是完美的,一定是舍弃某些,牺牲某些,而采用较优的方案!!!废话不多说了,开始正文! 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 作为开发,如果不了解缓存,那么你一定知道数据库,为什么会有缓存的出现?其实很简单,数据库的读写是基于磁盘IO的,数据库的性能,极大程度由你服务器的磁盘性能,硬件性能决定,目前数据库在软件层面的优化,已经做到了很不错了,但是你硬件

    跟不上,最终的下场就是GG,而面对目前互联网的流量越来越大,对数据库的要求,还是只能满足软件层面,硬件的成本太高,所以大部分的企业是无法承担这样的费用,业务越来越复杂,对数据库的读写压力会越来越大,撑不住会经常打挂几台,集群有时

    也扛不住,怎么办呢?

    那么缓存就出来了,挡在数据库的前面,洪峰流量先走缓存,抗住一波后,再根据业务走数据库;市面上有很多缓存,比如Redis,Memcache等等,这些都是基于内存模型的,学过计算机的都知道,内存的读写速度要大于磁盘的读写速度。

    所以内存的读写一定要快的多,这样也就降低了数据库压力,降低系统的瓶颈。

    虽然缓存出现了,带来极大的好处,同时给业务上带来了额外的问题。

    比如有

    • 数据库和缓存数据不一致,业界称为双写不一致
    • 缓存数据一大批集体失效,导致流量一瞬间直接打到数据库上,给数据库服务打挂了,这个现象业界称为缓存雪崩
    • 缓存和数据库中,都不存在某个数据,但是用户恶意攻击频繁请求一些大字段,大返回结果,以及不存在的数据,导致数据库压力过大而挂掉,这个业界称为缓存穿透
    • 缓存中某条数据不存在,但是数据库中存在,这样的场合一般是某个数据缓存到期了,这个时候读缓存没读到,并发请求上来都去读数据库的这条请求,导致数据库压力很大,这个称为缓存击穿

    其实雪崩和击穿很类似,但是不一样的地方在于:

    缓存击穿指并发查同一条数据,而缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。

    进入章节: