从一次文件上传卡死说起
2026年已经过半,6月17日的下午,我的一位在北京做AI创业的朋友打来电话,语气很急:他们的SpringMVC应用突然不动了,用户上传的文件全卡在队列里,监控显示那台部署了模型训练的GPU服务器,磁盘已满。这不是他第一次遇到这种问题了。实际上,做后台开发久了,你就会发现——服务器存储空间不足,往往是压垮整个系统的最后一根稻草。而这件事,恰恰把SpringMVC上传文件、Linux服务器管理、GPU服务器选型,甚至北京本地托管这些看似无关的事,串在了一起。
今天不写“指南”,我们来聊聊真实运维场景里那些不得不面对的坑,和相对靠谱的解法。
SpringMVC上传文件:你以为配置完就完了?
SpringMVC处理multipart请求本身不复杂,一个CommonsMultipartResolver就搞定了。但大多数人在上线后才会发现,问题从来不在代码里,而在磁盘上。比如:上传目录忘了做磁盘占用监控,日志和临时文件混在一起;或者,一个不小心上传了1TB的垃圾数据,直接把系统盘写满。
我见过最典型的案例是,某个团队把上传文件直接扔到了/tmp下,结果系统重启后文件丢了,用户闹着要赔数据。还有一个更隐蔽的坑:SpringMVC默认的临时文件目录可能就在系统分区上,当并发上传大文件时,服务器存储空间被瞬间耗尽,整个JVM都跟着瘫痪。
所以现在我的习惯是:强制设定文件大小上限,并且把上传目录单独挂载一个数据盘。如果用的是Linux服务器,直接用df -h和du -sh就能快速定位是哪个分区在膨胀。另外别忘了,做完这一步之后,最好配合定时任务(crontab)把过期文件清扫掉。
如何优雅地关闭Linux服务器?很多人都做错了
当磁盘告警或者要维护GPU服务器时,你肯定需要关闭Linux服务器。但直接拔电源或者敲shutdown -h now的做法,在2026年看来依然是不够专业的。尤其是当你那台服务器正在跑着长时间的训练任务,或者有SpringMVC的文件传输还在进行中。
正确的做法是:先用who命令看看谁在线,确认没有重要操作。然后,如果你要彻底关机,我建议先用sync把内存缓冲区里的数据写回磁盘,再执行shutdown -h +5,给业务一个缓冲时间。如果是生产环境,最好在业务低谷时段操作,例如凌晨3点到5点。最近几年,很多团队开始用systemctl reboot或者reboot命令来快速重启,但请注意:如果服务器存储空间不足,重启时很有可能导致fsck卡住,甚至系统起不来的情况。所以,关机和重启之前,务必清理出至少5%的可用磁盘空间。
GPU服务器怎么选?适用比奢华更重要
说到GPU服务器,很多初创团队上来就盯着NVIDIA H100或者B200。但对于大多数中小型应用(比如跑Stable Diffusion微调或者LLM推理),一台配有2张A6000或者RTX 6000 Ada的服务器,往往比单卡但价格贵几倍的H100更实用。
今年有一个趋势很明显:混合算力部署。很多人开始把训练任务放在公有云的高端实例上,而推理和日常服务则用自有的适用GPU服务器。这样做的好处是,当存储空间成为瓶颈时(比如SpringMVC上传的文件和模型权重抢磁盘),你可以灵活地把冷数据迁移到NAS或者对象存储,而不用动GPU卡。
选购GPU服务器时,除了看显存和CUDA核心数,还要重点看磁盘IO。很多便宜机型配的是SATA SSD,一旦多线程读写,IO马上变成瓶颈,训练速度反而上不去。NVMe RAID0其实没那么贵,但能很大程度上避免上传文件卡IO导致训练中断。
北京服务器托管:本地优势还在吗?
在2026年的北京,做服务器托管的机房依然不少,但门槛和成本都高了。主要是土地和电力资源稀缺,加上部分老机房带GPU设备的高功率需求吃力。如果你选在北京本地托管,首先要确认机房供电能不能支持单机柜8kW以上,否则你的GPU服务器根本跑不满。
另外,我观察到一个现象:很多在北京做AIGC的小团队,开始把模型训练放到托管机房,但把SpringMVC这类Web应用托管到公有云。这样既能享受本地机房的低延迟(尤其对于需要频繁上传大文件的业务),又能利用云端的弹性存储来解决服务器存储空间不足的问题。比如,在北京的托管机房里放一台存储节点专门接收上传文件,然后定期同步到云端冷备,很实用。
服务器存储空间不足?不只是加硬盘那么简单
最后这句是我的真心话:运维很多年,从磁盘爆满到系统崩溃,见过太多次了。解决方案从来不是无脑加硬盘。定期清理日志、给SpringMVC的上传目录做配额限制、把大数据集移到分布式存储(比如MinIO或Ceph),这些都是比单纯“加一块HDD”更靠谱的思路。另外,如果你的Linux服务器上有多个用户,记得用quota命令限制每个用户能占用的磁盘空间,否则迟早会有人把GPU服务器的根目录塞满,导致任务全部失败。
总而言之,当你的SpringMVC上传功能突然罢工,当Linux服务器报错磁盘满,当你在北京机房装了一台昂贵的适用GPU服务器却发现跑不动——回想一下,是不是从来没有人认真教过你这些东西?其实这些都不是大问题,但忽略任何一个,都可能让整个团队的进度停摆。今天讲的这些,希望对你有用。