服务器磁盘空间满了还能提供服务吗
服务器提供服务是肯定的,情况有几种:
1、磁盘没有数据需继续存储,服务器正常的服务,磁盘进行读操作不做写操作。
2、磁盘需要继续进行存储数据,也就是需要空间,那么就要根据之前服务设置的磁盘模式(有不能继续进行写操作、自动覆盖最早数据等)来分析。如果自动覆盖那就不用担心,读写都正常。
3、如果磁盘不能自动进行清理和覆盖,那么需要尽快添加新的磁盘空间,否者容易造成调用数据慢和数据丢失的可能。
今天下班某电商技术部leader发现个问题,说他们服务器硬盘满了。把日志文件都删掉了,可硬盘空间依旧满。于是df -h查看了下各个挂载点的状况(如下图)。 /dev/sda3占用了100%,那么我们du -s -h /看下目录的占用情况(如下图)。linux磁盘挂载点目录占用情况(图)挂载点下的目录之和远小于45G,那么是什么占用了硬盘呢以下为该问题的解答:在apache/tomcat服务在运行状态下,清空了运行服务的日志,从而导致了/dev/sda3 满了的问题。一般情况下,大多数服务(包括脚本)在运行时,是不能删除当前正在写入的日志文件的。原理分析:1 当前accesslog日志正在被apache进程占用。2 通过rm命令删除accesslog,实际只删除了文件名(该日志文件应用记数不为0,因此空间不会被释放)。3 通过rm命令删除了accesslog后,apache依然写日志到accesslog中,当开启apache进程时,已经通过accesslog定位到该文件的inode了,就是说再写日志是不通过accesslog,因此即使删除了accesslog,apache依然写日志到accesslog所在的inode节点,所以导致硬盘空间增加。4 因为删除了accesslog,所以我们就找不到该文件了,du也查不到,就会出现硬盘满了但看不到究竟是哪些文件占用的。(写的不甚详细,不明白的大家再google下。)解决方法:重启该日志文件的相关服务或程序,如:为apache日志文件则重启apache(如下图,重启后才硬盘空间占用正常)。
问题一:电脑磁盘满了怎么办? 1右击“我的电脑”―“属性”
2在弹出的对话框中点“高级”―性能栏里点“设置”
3点击性能栏里的高级,“虚拟内存”中点“更改”
4把虚拟内存放在其他的磁盘分区里。比如D盘
5一路“确定”系统会提示重启。重启即可。
问题二:Photoshop磁盘已满 怎么解决这个问题 你打开PS,点编辑----首选项---性能 页面----暂存盘,,默认的是C盘,然后你把你电脑上的硬盘剩余空间比较大的盘设置成第一暂存盘就行了,再给你说个学习PS 的地方吧,520PS潮流520pscl/,这里是个学习的网站,里边的教程按顺序分好了,分成了初级中级和高级,每个级别有三十课,每课教程后边都有作业,你交了作业就有老师给你批改,你从初级按照顺序学就行了,还有一个学习PS的YY语音穿道52352098,在线听课的网址yy/8617,这里有老师在线语音讲课的,是免费的,每月一期零基础速成班,每月的1号开始报名,16号讲课,也是全程免费的,就是有名额限制。群号是541207,你可以去看看
问题三:电脑盘都满了怎么办??? 您好,希望对你有帮助!
你这个硬盘太小了,还分那么多区干嘛?直接做一个分区得了其实。你的喜好那么多,还是买个1000G的硬盘吧,又花不了多少钱,300来块钱一个吧,这样烦恼也没有那么多了。也不怕断网!一个硬盘在手就什么都解决了,反正你迟早都需要硬盘的,哪怕买新电脑也是一样,不如加一块,不亏!楼主你要是想不花钱,又想保留你要的东西的话,这个办法还真没有,建议你不要等答案了,答案就是没有啊!以你的情况来看,只有一个办法,网络硬盘不要钱。但是要联网!一天存10元钱,存一个半月,1000G硬盘就能买到了,要不你把资料存我这里来,我的很大!
我是2个盘,128G的和1T的都是一个盘一个分区,你这个硬盘还真是太小了啊,和我系统盘一样大,清理出8个G就把你乐的,呵呵楼主真可爱,你觉得想采纳谁就采纳谁把。
问题四:我家电脑几个磁盘全满了!!!怎么办? 磁盘清理
删除不需要的视频、音频文件及游戏文件
将不太需要的硬盘移入移动硬盘
加装新硬盘
问题五:电脑磁盘空间已满怎么办 电脑磁盘空间已满:
清理系统垃圾文件。
转移文档中的大文件到移动硬盘。
删除安装于C盘的程序,重新安装到非系统分区。
关闭系统还原设置。
使用更大容量硬盘。
问题六:请问每个磁盘都接近满了怎么办 移到别的究竟多的硬盘,C盘不要放太多东西,那个是系统,实在放不下搞个移动硬盘,把东西拷过去
问题七:硬盘没有文件,内存就满了,怎么办 打开文件夹,点工具,文件夹选项,查看,把“隐藏受保护的操作系统文件”去掉,再选择下面的“显示所有文件和文件夹”,然后再看你那个盘,是不是多了好多文件? 看看哪些是你用的着的,哪些不是你想要的,不要的就删掉。
问题八:电脑c,d,e,盘都满了怎么办 把没用的东西删除, 或者是直接换一个大点的硬盘。
问题九:电脑的本地磁盘都满了,怎么清理,让磁盘空间足点。 本地磁盘空间不足的解决方法:
从现在开始下载软件或文件,不要放在
C
盘,按照下面方法做能腾出不少空间。
1、将虚拟内存移到非系统盘中(下面有转移方法)。
2、将IE临时文件转移到非系统盘中,打开IE选工具/Interner选项/Interner项临时文件中的设置
中的设置
/
选好移动后的路径后按确定应用,重启即可。
3
、如果空间不够在将一些软件移到非系统盘中,如果够了,今后就不要在把软件或文
件下载到
C
盘了,在平时用超级兔子及时清理系统垃圾即可(你可下载超级兔子这款绿色
软件,让她帮助你清理系统垃圾)。
4、C盘中,只要是自己下载的软件或文件都可以删除(如果系统不让删除,请开机按F8到安全模式中删除)。设置虚拟内存方法:右击我的电脑
/
属性
/
高级
/
性能中的设置
/高级
/
虚拟内存中的更改
/
选自定义大小,在初始大小和最大值,同时设为你的物理内存的两倍。如果你的内存是
512MB
,就将初始大小和最大值同时设为设为
1024MB
。设置后需按“设置‘按钮,然后再按确定和应用,重新启动电脑设置生效。
5,下载一个windows优化大师清理以下垃圾。把你在c盘下知道的东西可以删除的删除掉,不认识的东西千万不要删除了,不然机器可能不能运行
除掉,不认识的东西千万不要删除了,不然机器可能不能运行。
问题十:SQL数据磁盘满了怎么解决? -- 清空日志
--压缩日志及数据库文件大小
/--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库
--/
selectfromsysfiles
--1清空日志
DUMPTRANSACTIONusernameWITHNO_LOG
--2截断事务日志:
BACKUPLOGusernameWITHNO_LOG
--3收缩数据库文件(如果不压缩,数据库的文件不会减小
-- 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
-- 也可以用SQL语句来完成
--收缩数据库
DBCCSHRINKDATABASE(username)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:selectfromsysfiles
DBCCSHRINKFILE(2)
--4为了最大化的缩小日志文件(如果是sql70,这步只能在查询分析器中进行)
-- a分离数据库:
-- 企业管理器--服务器--数据库--右键--分离数据库
-- b在我的电脑中删除LOG文件
-- c附加数据库:
-- 企业管理器--服务器--数据库--右键--附加数据库
-- 此法将生成新的LOG,大小只有500多K
-- 或用代码:
-- 下面的示例分离username,然后将username中的一个文件附加到当前服务器。
execsp_dboptionusername,'singleuser',true
a分离
[email protected] ='username'
b删除日志文件
execmasterxp_cmdshell'delD:\ProgramFiles\SQL\database\username_LOGldf'
c再附加
[email protected] ='username',
@physname='D:\ProgramFiles\SQL\database\username_DataMDF'
--5为了以后能自动收缩,做如下设置:
-- 企业管理器--服务器--右键数据库--属性--选项--选择自动收缩
--SQL语句设置方式:
EXECsp_dboption'数据库名','autoshrink','TRUE'
--6如果想以后不让它日志增长得太大
-- 企业管理器--服务器--右键数据>>
服务器满了,有以下原因,逐步检查就好:
1、如果是大文件占用了,那么查询大于某个值的文件的方法:
find / -size +100c -print
这是从根盘开始查找大于100字节的文件(至于字节数你当然可以自己设置)
你可以用
find / -size +100c -exec ls -l {}\;
来列出文件属性。
2、如果只是因为有些应用生成的日志文件较多,长时间没有清理后占用了,这种情况最明显的标志为系统空间使用量逐步递增,每天的增量基本相差不大。那么最快捷的方式莫过于询问应用厂商要到日志存放目录后进行清理。如果找不到厂商,那只好自己动手咯,写个脚本查:
#!/bin/ksh
#####用du命令输出所有目录所占的磁盘空间大小,以G为单位#########
du -h >fs_dulog
######判断各层目录大小,查到占用量大的目录######
cat fs_dulog|while read LINE FS_USED
do
if [ $LINE -ge 10 ]
then
echo $FS_USED >>resultlog
else
exit
fi
done
####查看运行结果#######
more resultlog
这样你就能看到占用量比较大的目录,从而有针对性的到相应目录下检查,看到底是什么东西在占用硬盘空间了。(if [ $LINE -ge 10 ] ,这里是判断超过10G的目录,你可以修改)
3、因为人为的误操作,导致了某些进程在没有执行完成的时候被kill掉了,但是缓存中的程序没有释放,仍然在运行,这会产生一些临时文件占用大量的磁盘空间资源,这种现象的特点是爆发式的增长,在很短时间内就将磁盘空间占满。解决的方法:
i、如果是因为父进程被杀除,子进程还运行导致,那么最简单,kill子进程,就会释放。
ii、如果能用ipcs确认是哪个用户的进程,那么也不困难,顺着使用ipcrm就行(这个就不一一例举了,有了命令查使用方法还是很方便的)
iii、执行进程的用户是比较关键的用户如:root用户、有实例的oracle用户、在线的生产用户等。那么建议在确认是因为共享缓存的原因导致的问题后重启服务器。
4、你已经删除了一些占用量大的文件,或者在根盘下做du -h发现占用量远远的小于130G,df的结果仍然是100%的使用率。那么基本肯定你碰到了linux的一个bug,直接重启就能解决。(当然了也不一定是bug,我碰到过那种程序在写一个日志,但是删除日志后空间不释放的问题。这个是linux本身的机制引起的,只需要停止相关的程序空间就会释放的)
在日常使用过程中,可能会经常遇到Linux服务器磁盘空间满的问题。
一、遇到磁盘空间不足的报错时候,首先使用df -h查看磁盘空间使用情况,如下图所示
二、进入目录/home/zhang,查找磁盘空间中的大文件,使用命令du -sh 查找占用空间大的目录,通过逐层定位,最后会找到具体的文件。
三、第二步的命令虽然能看到了,但是文件太多不好找,使用du -h --max-depth=1命令查找空间占用大的文件。
0条评论