是谁把我的服务器硬盘撑爆了!是谁!

别让你的docker镜像撑爆你的服务器 多阶段构建不是什么黑科技,Docker 17.05 就有了,到现在快十年了。更是和 Docker 一样古老。但大多数人的 Dockerfile 还停留在"能跑就行"的阶段——就像大多数人的代码还停留在"能跑就行"的阶段。你的镜像里,每一个文件,是运行时需要的,还是只是你懒得把它分开?想清楚这个问题,900MB 变 7MB,就是顺手的事。哦对了,我的下班倒计时服务现在已经跑在生产了。它每次扩容都是秒级就绪。唯一的问题是,老板发现大家开始频繁刷新这个接口了。 阅读详情

之前有同学问:为什么反复强调学编程时一定要把项目上线?而不是跟着教程敲完、能本地运行就结束了?

答案很简单,企业中的项目都是上线的,你进入工作后要处理很多线上的问题。很多 Bug 是只有项目上线后才会经历的,也只有处理过这些 Bug,你的经验值才会持续上涨。

今天给大家分享的就是我自己处理一个线上问题的故事。

故事 事故

我估计不少同学都经历过自己电脑硬盘空间不足的烦恼吧,但想必大多数程序员朋友没有经历过服务器硬盘空间不足的问题。

我还真经历过,记得那是我在腾讯做开发的第二年,有一天突然收到了一个告警,说是我的服务器硬盘空间即将被占满,让我及时处理。

收到这个告警时,我是懵逼的,因为我部署到这个服务器上的项目并没有涉及什么文件写入,公司服务器硬盘还挺大的,怎么突然空间就满了呢?

于是我使用 Linux 命令进一步排查,比如下面这个命令:

du -h --max-depth=1 | sort -hr | head -n 10

这行命令的作用是:列举磁盘上占用空间前 10 的目录和占用空间大小。

图片

一下就查到了元凶,竟然是某个项目的日志文件,占了 70% 的空间!

我相信大家平时自己做项目的时候,很少会关注日志文件占用的大小,一般项目量级不大也没什么影响。但如果项目长期运行,哪怕每天 100 mb 的日志,一年也会占用几十个 G 了,不容小觑。

有意思的是,产生这些日志文件的项目,还不是我自己的,是其他用这个服务器的同事的项目!所以为啥说项目要尽量独立部署、可以用容器去做隔离呢,共用服务器一旦出事,所有项目就 “连坐” 了。

解决方案

硬盘不足可能会给程序带来很多问题,比如项目无法启动、临时文件无法创建、日志文件无法写入等等。轻则影响业务功能,重则服务宕机,所以不得不引起重视。

正好昨天编程导航的鱼友问我:“自己公司的项目每天几十 G 的日志,硬盘不足,怎么处理?”

那下面我就分享下自己关于日志处理的经验。

1、日志控制

这是最简单方法,比如精简日志的内容:尽量使用简短的英文提示语代替中文,能查询出关键信息即可,能省则省。

还有对日志级别的控制。日志一般分为DEBUG、INFO、WARN、ERROR 等级别,可以根据不同的环境动态调整输出级别,比如在生产环境通常设置只输出 INFO 或 WARN 及以上等级的日志,在开发环境或诊断问题时才临时输出 DEBUG 级别的日志。

2、日志轮转

使用日志轮转机制(logrotate),可以根据时间或文件大小自动讲日志进行切分和压缩、甚至是清理,防止日志无限增长。

比如按照日维度和日志级别对日志进行切分和压缩,可能看到下面的文件列表:

  • xxx.ERROR.2024-05-23.0.log(被切分)

  • xxx.ERROR.2024-05-23.1.log

  • xxx.ERROR.2024-05-23.2.log

  • xxx.INFO.2024-05-23.0.log(分级别)

  • xxx.ERROR.2024-04-01.zip(被压缩)

很多日志框架都自带了日志轮转功能,去网上找一段配置就可以了,不多说。

3、日志清理和转储

可以定期将部分历史日志进行清理,或者压缩后移动到更便宜的存储上(比如对象存储的冷存储),用程序写个定时任务或者脚本就能实现。

也可以自己设置一些策略,比如 7 天清理一次 INFO 级别的日志、14 天转储一次 ERROR 日志。

4、日志管理系统

自己做项目时,为了方便,日志一般写入并存储到服务器上即可。但如果日志量级大了,可能就要考虑使用集中化的日志管理系统,比如典型的分布式日志 ELK(Elasticsearch + Logstash + Kibana),可以将日志统一采集、存储到多台服务器上并支持在线分析。这样不仅能够减轻单台服务器的磁盘压力、便于扩容硬盘、还可以更方便地进行日志搜索和分析,不用自己写 Linux 命令从日志文件中提取文本了。

图片

但搭建和维护 ELK 的成本是比较大的,小公司未必要使用。大厂一般会有统一的分布式日志收集系统,而且由专门的技术团队维护,我们各个业务侧的开发同学直接通过 SDK 或日志采集 agent 来将自己的日志接入到系统即可。这样不用担心因为日志占用磁盘问题导致项目故障。但是使用日志收集系统不意味着我们就能放肆地浪费空间了,维护团队也会设定一个规则,比如日志只能保留一段时间,如果要长期保留,可能要消耗自己部门的预算之类的。

5、选择合适的日志框架

有些日志框架可能硬盘空间不足后就会报错、甚至阻塞程序运行、让 CPU 负载超标等。建议选择像 Logback 这种日志框架,在硬盘不足时,不会写入日志,也不会影响程序;等有硬盘空间了,又会继续写入。


当然,如果经过认真的分析和方案设计,一定要同时记录和存储那么多日志,又没有足够的硬盘空间(典型的 “我全都要”),那就找领导加硬盘、加预算,别什么都自己默默承受~

不过无论如何,建议给服务器的硬盘配置监控,一般用大厂的云服务器时,用控制台配置一下就好。

本文来自:程序员鱼皮

服务器硬盘介绍 本篇文章主要介绍服务器硬盘,包括基本概念、关键指标及选型指南等 阅读详情

相关推荐

给服务器添加硬盘,Ubuntu挂载硬盘

我是给服务器加硬盘。但是在加之前,必须要知道,要加啥样的硬盘,多大的,啥型号的接口,这些信息都需要知道的。如果想知道你的硬盘服务器需要啥型号硬盘。可以先查服务器的型号,去服务器厂家的官网搜这个服务器的详细规格说明书。举个例子你可以在这上边找到服务器各种硬件配置的详细信息。那么如果你发现你服务器的版本,官网上没有,那就使用下面这个命令,查看你原先挂载的硬盘的型号 sudo smartctl --all /dev/sda 列出的device model就是硬盘型号 form factor 就是尺寸 SATA

weixin_39417324的博客 2757

救命!IoT 数据快把我硬盘撑爆了?IoTDB 手把手救场指南

本文以幽默风格为物联网从业者提供 IoTDB 使用教程,先吐槽传统数据库应对 IoT 数据时 “写入慢、存储满、查询久” 的痛点,引出专为物联网设计的时序数据库 IoTDB。随后介绍其列式存储、多压缩算法、高速写入、时间索引、分布式扩展五大核心优势,再分步骤详解 Linux、Windows、macOS 系统下 IoTDB 的下载、安装、启动、连接及 Web UI 配置方法,还给出创建时间序列、插入、查询、删除数据的实战命令。最后总结 IoTDB 开源免费、性能强、易上手的特点,推荐物联网项目优先选用。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 19万+

【WPF】渲染失败甚至程序崩溃,D3DImage.Lock卡死,报COMException异常和UCEERR_RENDERTHREADFAILURE消息

最近遇到WPF程序抛出ystem.Runtime.InteropServices.COMException异常,异常消息UCEERR_RENDERTHREADFAILURE (Exception from HRESULT: 0x88980406),或者先在D3DImage.Lock卡死,然后再出异常的问题。 现象和复现方法 出现了标题中的现象,你很可能有至少两个屏幕,并且可能在你的程序中直接或间接用了如下的库或技术: 1、WpfD3D这个开源库 2、自行使用了WPF中的D3DImage类,实现D3D

几罗星人的专栏 8254

Clickhouse硬盘爆了!该如何进行排查和优化设置?

Hello大家好,在我们使用了clickhouse进行数据存储后,多多少少遇到一些棘手的问题,在此分享一下,希望对有同样情况的同学有所帮助。我们平台使用clickhouse改造后,系统流畅度得到大幅提升,大家有兴趣可以来体验一下效果,如大家所知,Clickhouse数据有几大优点,很适合处理海量的数据,如:查询效率高、clickhouse号称10亿数据,毫秒级查询返回结果;数据压缩率高、它采用了列式存储,对数据压缩有天然优势,节省硬盘资源;

webfunny2020的博客 1422

一种四通道高精度IEPE加速度传感器控制器设计稿

一种四通道高精度IEPE加速度传感器控制器设计稿,颇具参考价值。

boyondmcu的博客 3854

Vmware安装windowsServer2022版本

全网最详细的Vmware安装windowsServer2022版本

A乐神的博客 7021

dell服务器更换硬盘raid,DELL T620服务器硬盘坏,更换硬盘做RAID同步

一、查看服务器状态DELL T620服务器硬盘坏,更换硬盘做RAID同步DELL T620服务器如下图所示:第一块硬盘,和第三块硬盘一直闪黄灯两块硬盘,现在已经闪黄灯,但是客户系统还是可以进的去,说明现在至少两块硬盘还是可以正常工作的,但是很快两块硬盘都可以出问题。现在买了两块硬盘,准备给客户更换 。二、进入RAID界面查看硬盘状态将电脑关机,重新进入系统按Ctrl+R,进入RAID卡界面。进入服...

weixin_39940154的博客 7633

昆仑通态屏幕制作(连载1)---接触篇

写在开始 背景:最近出了做QT、LORA和4G,还做了一个屏幕。以前做了一个迪文的串口屏幕,发现网上的教程很多,所以连载就不更新了,并且迪文屏幕的设置什么的比较简单,应该从网上都能找到对应的教程。而现在用的昆仑通态的屏幕属于嵌入式屏幕,至于为啥叫嵌入式,也不是很明白,反正就是需要用这个屏幕,嵌入式不嵌入式不重要了。重要的是能用,并且能实现串口屏幕不能实现的功能。所以选定昆仑通态的一款屏幕。 文章语言:我比较习惯用比较糙的语言介绍做的东西,有时候不太准备,但是为了方便理解,还请大家谅解。用...

weixin_45426095的博客 6737

服务器类型和硬盘

服务器类型服务器简介服务器类型硬盘 服务器简介 服务器: 也称伺服器,是一种高性能计算机,提供计算服务的设备。 服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似。 由于服务器需要提供高可靠的服务,所以在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。 服务器和电脑功能都是一样的,也可以将服务器称之为电脑,只是服务器对稳定性与安全性以及处理器数据能力有更高要求。比如我们随时浏览一个网站,发现这个网站每天24小时都能访问,为什么呢?原因在于网站服务器不能关闭,要保证长

qq_21853321的博客 2万+

第 8 篇:TMC2240 电机正反转实现|DIR 引脚控制 + 代码优化(稳定不抖动)

本文详细介绍了TMC2240电机驱动芯片的正反转实现方法,重点解决方向切换时的抖动和冲击问题。文章首先明确了硬件连接、基础配置和使能状态三个前提条件,然后阐述了DIR引脚电平控制方向的核心原理,提供了STM32的GPIO配置代码。针对方向切换时的电流冲击问题,作者提出了"停止-延迟-切换-启动"的平滑切换逻辑,并给出了包含方向枚举、转速控制和方向切换函数的完整代码实现方案。通过这种优化方法,可以有效避免电机在正反转切换时产生的抖动、冲击声和发热问题,实现稳定的双向控制。文章还提示了后续可

BackCatK Chen的博客 2078

基于YOLOv11的工业零件表面缺陷检测系统:从原理到实现

工业质量控制是制造业的核心环节,表面缺陷检测作为其中重要组成部分,直接关系到产品质量和企业效益。本文详细介绍了一种基于YOLOv11深度学习算法的工业零件表面缺陷检测系统,包含完整的算法原理分析、数据集构建方法、模型训练策略以及用户界面设计。通过大量实验验证,该系统能够高效准确地检测零件表面的划痕、凹陷、锈蚀等多种缺陷,检测精度达到96.2%,满足工业实时检测需求。本文还提供了完整的代码实现和详细的技术文档,为相关领域的研究者和工程师提供参考。关键词:表面缺陷检测;YOLOv11;深度学习;工业视觉;

YOLO 567

服务器加装硬盘

关于本博客的说明:本文主要分享如何为服务器加装机械硬盘。 目录 1. 确认原硬盘节点 2. 加装物理硬盘,并再次查看硬盘信息 3. 创建分区 4、创建新的挂载点 5、手动挂载分区 6、添加访问权限 7、设置为开机自动挂载分区 具体加装过程: 1. 确认原硬盘节点 sudo fdisk -l 即原硬盘标识为sda 2. 加装物理硬盘,并再次查看硬盘信息 新加硬盘显...

Cratial 1万+

基于STM32F1XX 、HAL库的BH1745NUC-E2环境光传感器驱动应用C语言程序设计

printf("BH1745制造商ID: 0x%02X\r\n", BH1745_ReadManufacturerID(&hbh1745));#define BH1745_ADDR_HIGH 0x39 // ADDR引脚接VDD。#define BH1745_ADDR_LOW 0x38 // ADDR引脚接地。= 0xE0) // BH1745制造商ID为0xE0。// 清除RGBC测量使能位。printf("BH1745初始化失败\r\n");

PP_Cottage的博客 281

服务器能不能用普通硬盘,服务器硬盘是什么 与普通硬盘区别

什么是服务器硬盘服务器硬盘,顾名思义,就是服务器上使用的硬盘(Hard Disk)。如果说服务器是网络数据的核心,那么服务器硬盘就是这个核心的数据仓库,所有的软件和用户数据都存储在这里。对用户来说,储存在服务器上的硬盘数据是特别宝贵的,因此硬盘的可靠性是特别重要的。(相关知识:什么是服务器带宽)服务器硬盘与普通硬盘区别1、速度快服务器使用的硬盘转速快,可以达到每分钟7200或10000转,甚至更高...

weixin_36284848的博客 5733

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

去掉服务器硬盘告警声音,某局点服务器硬盘误拔出导致硬盘告警

问题描述用户误将RH5885v2服务器的一块硬盘拔出,过一个小时再插回去,服务器鸣叫,插回去的硬盘告警。告警信息显示告警:Hard disk drive fault处理过程1、重启服务器按“Ctrl+H”进入RAID配置界面(WebBIOS)。发现新插回的硬盘显示PD Missing。2、选中如图中显示为黑色的盘,并选中Properties选项,点击GO3、选中Make Unconf Good选项...

weixin_26985923的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

我们切换Clickhouse数据库后,硬盘就爆了

如大家所知,Clickhouse数据有几大优点,很适合处理海量的数据,如:查询效率高、clickhouse号称10亿数据,毫秒级查询返回结果;数据压缩率高、它采用了列式存储,对数据压缩有天然优势,节省硬盘资源;集群化、clickhouse天生支持集群化,同时有分区和分片设计,已经涵盖了我们按天分表的设计;

b826604005的博客 1305

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

服务器能不能用普通硬盘,服务器硬盘与普通硬盘之间的区别

原标题:服务器硬盘与普通硬盘之间的区别有很多人以为服务器硬盘与PC机硬盘没有相同,殊不知这里边很多的差异,服务器的硬盘安全系数与普通硬盘之间有什么区别,现在我们来仔细看看。服务器硬盘与普通硬盘之间的区别1 更高的稳定性和可靠性1) 服务器一般需要24*7不停的运行,其硬盘也要24小时不停的运转。因此,服务器硬盘对稳定性和可靠性有着很高的要求。一般来说服务器硬盘主要从以下三个方面来保证其稳定性和可靠...

weixin_31913557的博客 2957

服务器硬盘与普通硬盘有啥区别?

同样都是硬盘,服务器的硬盘跟普通硬盘会存在差别吗?从价格上来说,服务器硬盘要比普通硬盘贵得多,那么它们之间有哪些不同? 服务器 由于固态硬盘价格贵,并且容量小,因此目前服务器硬盘主流还是用的是传统的机械硬盘。从表面上看,服务器硬盘和普通硬盘似乎没啥区别,都是2.5/3.5英寸,机械硬盘内部都是磁头、盘片,能有哪些区别呢?下面小编就来大致盘点下服务器硬盘比普通硬盘贵在哪? 服务器硬盘参数 另外,服...

LuHai3005151872的博客 1733

服务器能不能用普通硬盘,服务器硬盘和普通硬盘区别 服务器硬盘比普通硬盘贵在哪?...

“服务器硬盘和普通硬盘有什么区别啊”。很多人以为服务器用的硬盘和普通电脑一样,但在电商平台搜索“服务器硬盘”会发现,价格比普通硬盘普遍要贵很多。一分钱,一分货,贵有贵的道理,下面本文就来聊聊服务器硬盘和普通硬盘的区别。服务器由于固态硬盘价格贵,并且容量小,因此目前服务器硬盘主流还是用的是传统的机械硬盘。从表面上看,服务器硬盘和普通硬盘似乎没啥区别,都是2.5/3.5英寸,机械硬盘内部都是磁头、盘片...

weixin_39714763的博客 2232

服务器硬盘管理

服务器硬盘管理 常规步骤 如果硬盘挂载到硬盘阵列卡,需要先做RAID,之后操作如下 第一步: 使用fdisk -l检查硬盘是否能被系统检测到 第二步(可选): 假如需要硬盘分区,则用fdisk/gdisk/parted对硬盘划分磁盘 第三步: 使用mkfs进行磁盘格式化,有如下几种可选,目前推荐用ext4 传统文件系统: ext2, minix, msdos, fat, vfat, 日志文件...

xuzhougeng blog 3450

r740服务器固态硬盘和机械硬盘一起用_硬盘使用知识介绍

从使用的角度来说,硬盘分台式机硬盘、笔记本硬盘、移动硬盘、机械硬盘、固态硬盘、服务器硬盘、磁盘阵列等,下面我们一一介绍。此外,本文顺便把现在人们常用的U盘与内存卡也一并介绍,这两种存储设备的使用同硬盘几乎没什么区别。关于台式机硬盘与笔记本硬盘的区别,除了一个较大、较厚、较重;一个较小、较薄、较轻外。就性能而言,台式机硬盘要好于笔记本硬盘,笔记本硬盘的优势主要在于节省空间,便于携带;就价格而言,笔记...

weixin_39553600的博客 1785

服务器硬盘一般用哪种,服务器用哪种硬盘比较好,怎么挑选

服务器的使用免不了使用服务器硬盘,硬盘服务器硬盘就是这个核心的数据仓库,所有的软件和用户数据都存储在这里,在服务器的使用过程中是非常重要的一部分,对于用户来说它上面所存储的数据是非常重要的。那么服务器该如何挑选硬盘呢,看哪些指标呢?随着这些年网络在中国的发展越来越好,大中型企业和个人多在使用服务器的相关产品,不管是服务器的一些硬件,或者是服务器的相关服务,都给用户带去了更多的方便。服务器硬盘的作用...

weixin_36427002的博客 3149

服务器修改硬盘顺序,服务器硬盘阵列硬盘顺序

服务器硬盘阵列硬盘顺序 内容精选换一换本章节指导用户挂载已有数据的共享云硬盘,只可以用作数据盘。您可以在磁盘列表中查看磁盘信息,磁盘信息符合以下条件,该磁盘支持挂载至云服务器用作数据盘。共享盘:共享磁盘属性:数据盘磁盘状态:可用或者正在使用共享盘:共享磁盘属性:数据盘磁盘状态:可用或者正在使用一块共享云硬盘最多可同时挂载至16台云服务器,这些云服务器必须与共享云硬盘位于同一区本章节指导用户挂载已有...

weixin_30586369的博客 1443

服务器如何存放硬盘,详解服务器的存储硬盘问题

存储服务器的硬件设备中最重要的肯定是硬盘,因为所有的数据都存储在里面。虽然我们可以做一个阵列来提高安全性,但是一般的RAID5和RAID6只有在一两个磁盘损坏的情况下才能保证数据完整,再次损坏数据会丢失。选择性能好、寿命长的硬盘是解决问题的关键。租用服务器哪个好?小编选梦飞云。问题1:SATA和SAS硬盘价格有什么区别?主要区别是缓存和速度。同样的8T产品,SATA传输速度为6Gb/s,SAS传输...

weixin_42537450的博客 1492

一台服务器分别可以安装多少块不同的硬盘

使用 RAID 技术:利用 RAID 技术提高数据冗余和读写性能,如 RAID 0、RAID 1、RAID 5、RAID 6 或 RAID 10。性能与容量的平衡:根据应用需求选择 SAS 或 SATA 硬盘,并平衡性能和容量。SSD 硬盘:对于需要快速访问的应用,可以考虑使用 SSD 硬盘以提高性能。标准配置:通常支持8-12块3.5英寸硬盘或16-24块2.5英寸硬盘。标准配置:通常支持4-8块2.5英寸硬盘或2-4块3.5英寸硬盘。标准配置:通常支持12-36块3.5英寸硬盘或更多2.5英寸硬盘。

恒创科技Henghost 1596
上一篇: 字节系多款 App 被指控抄袭源代码,连拼错的代码都抄走了?美摄回应:我们不是碰瓷,是在维权
下一篇: 身在外企,如何实现 React 应用国际化?
IT界那些事儿
博客等级 码龄6年 2万+粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值