linux 磁盘占用,linux查看磁盘空间占用

linux磁盘占用100%怎么解决

通过你的问题的描述,可以从以下几个方面来试试:

1.先对磁盘所有文件大小进行统计,看统计结果是否达到存储空间大小,可以采用du命令来进行查看。

2.查看inode统计,可通过df-i命令来进行统计查看。

3.有时我们通过查看inode统计,删除了相关文件,但是空间依然不能释放出来,

可以通过如下命令进行:

lsof|grepdeleted

然后将对应的文件进程杀掉,即解锁。

通过此操作,一般磁盘空间就被释放出来了。

温馨提示:

我们在使用rm命令进行删除时,有时会导致空间不能彻底释放,因此在删除正在写的文件时,一般用cat/dev/null>file来进行,而不是直接使用rm命令,这点要注意。

以上就是我的建议,操作时可能会有出入,如有问题,可私信我或加关注,我会尽快回复,希望我的回答能帮到你。

怎么查看linux的哪个进程占用磁盘io较多

您好,很高兴为您解答。

服务器cpu使用率不高,load比较高,所以要查看一下IO。硬盘IO可以通过命令vmstat或iostat获得(也可以用yum安装dstat获得),网络IO可以用iftop命令获取。但是不知道那个进程使用硬盘IO比较高,通过查找没有找到相关命令,只好自己写个脚本进行统计处理。

本脚本在CentOS6下(kernel2.6以上)python2.6测试通过。

直接运行脚本,默认情况下收集3秒钟数据,显示读写最高的前三个进程。如用参数可以使用命令“python fhip.py 4 5 3”,第一个数位每次收集读写数据的间隔秒数,第二个数是打印出读写最多的n个进程,第三个为运行脚本的次数。因为参数部分写的比较简单那,所以用参数必须3个全写。。

#!/bin/python

#-*-coding:utf-8-*-

#Filename:ind_high_io_process

#Revision:1.0

#Date:2013-3-8

#Author:simonzhang

#web:www.simonzhang.net

#Email:simon-zzm@163.com

###ENDINITINFO

importos

importre

importsys

importtime

fromstringimportstrip

####

sys_proc_path='/proc/'

re_find_process_number='^\d+$'

####

#通过/proc/$pid/io获取读写信息

####

defcollect_info():

_tmp={}

re_find_process_dir=re.compile(re_find_process_number)

foriinos.listdir(sys_proc_path):

ifre_find_process_dir.search(i):

#获得进程名

process_name=open("%s%s/stat"%(sys_proc_path,i),"rb").read().split("")[1]

#读取io信息

rw_io=open("%s%s/io"%(sys_proc_path,i),"rb").readlines()

for_infoinrw_io:

cut_info=strip(_info).split(':')

ifstrip(cut_info[0])=="read_bytes":

read_io=int(strip(cut_info[1]))

ifstrip(cut_info[0])=="write_bytes":

write_io=int(strip(cut_info[1]))

_tmp[i]={"name":process_name,"read_bytes":read_io,"write_bytes":write_io}

return_tmp

defmain(_sleep_time,_list_num):

_sort_read_dict={}

_sort_write_dict={}

#获取系统读写数据

process_info_list_frist=collect_info()

time.sleep(_sleep_time)

process_info_list_second=collect_info()

#将读数据和写数据进行分组,写入两个字典中

forloopinprocess_info_list_second.keys():

second_read_v=process_info_list_second[loop]["read_bytes"]

second_write_v=process_info_list_second[loop]["write_bytes"]

try:

frist_read_v=process_info_list_frist[loop]["read_bytes"]

except:

frist_read_v=0

try:

frist_write_v=process_info_list_frist[loop]["write_bytes"]

except:

frist_write_v=0

#计算第二次获得数据域第一次获得数据的差

_sort_read_dict[loop]=second_read_v-frist_read_v

_sort_write_dict[loop]=second_write_v-frist_write_v

#将读写数据进行排序

sort_read_dict=sorted(_sort_read_dict.items(),key=lambda_sort_read_dict:_sort_read_dict[1],reverse=True)

sort_write_dict=sorted(_sort_write_dict.items(),key=lambda_sort_write_dict:_sort_write_dict[1],reverse=True)

#打印统计结果

print"pidprocessread(bytes)pidprocesswrite(btyes)"

for_numinrange(_list_num):

read_pid=sort_read_dict[_num][0]

write_pid=sort_write_dict[_num][0]

res="%s"%read_pid

res+=""*(8-len(read_pid))+process_info_list_second[read_pid]["name"]

res+=""*(12-len(process_info_list_second[read_pid]["name"]))+"%s"%sort_read_dict[_num][1]

res+=""*(12-len("%s"%sort_read_dict[_num][1]))+write_pid

res+=""*(8-len(write_pid))+process_info_list_second[write_pid]["name"]

res+=""*(12-len("%s"%process_info_list_second[write_pid]["name"]))+"%s"%sort_write_dict[_num][1]

printres

print"\n"*1

if__name__=='__main__':

try:

_sleep_time=sys.argv[1]

except:

_sleep_time=3

try:

_num=sys.argv[2]

except:

_num=3

try:

loop=sys.argv[3]

except:

loop=1

foriinrange(int(loop)):

main(int(_sleep_time),int(_num))

如若满意,请点击【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

linux如何查看系统占用磁盘空间最大的文件及让文件按大小排序

df-hl查看磁盘剩余空间
du-sm文件夹返回该文件夹总M数更多功能请查看:
df--help
du--help
du-sh(这个目录的名字)是查这个目录的大小使用du命令可以查看目录,例如查看/home/kuuyee目录占用磁盘空间大小可以使用下面的命令:# du/home/kuuyee-sh我的home目录下有上百个构建项目,一个一个的差看目录占用情况太麻烦了用命令:#du/home--max-depth=1-h这样的话就吧所有的子目录的磁盘占用情况都列出来了!这里的--max-depth参数代表着要列出目录的深度,如果要列出两级目录就设置为2,以此类推。如果想吧结果输出到文件里可以这样:# du/home--max-depth=1-h> disk_status.txt用df-h查每个根下面的目录的分区大小就可以知道了用法:du [选项]… [文件]…或:du [选项]…–files0-from=F总结每个<文件>的磁盘用量,目录则取总用量。
df命令是linux系统以磁盘分区为单位查看文件系统,可以加上参数查看磁盘剩余空间信息,命令格式:
df-hl显示格式为:文件系统容量已用可用已用%挂载点
FilesystemSize Used Avail Use% Mounted on/dev/hda2 45G 19G 24G 44%//dev/hda1 494M 19M 450M 4%/boot/dev/hda6 4.9G 2.2G 2.5G 47%/home/dev/hda5 9.7G 2.9G 6.4G 31%/opt
none 1009M 0 1009M 0%/dev/shm/dev/hda3 9.7G 7.2G 2.1G 78%/usr/local/dev/hdb2 75G 75G 0 100%//dev/hdb2 75G 75G 0 100%/以上面的输出为例,表示的意思为:
HD硬盘接口的第二个硬盘(b),第二个分区(2),容量是75G,用了75G,可用是0,因此利用率是100%,被挂载到根分区目录上(/)。例子
1)查看文件大小查看当前文件夹下所有文件大小(包括子文件夹) du-sh# du-h
15M./package
16K./.fontconfig
4.0K./.cache
5.1M./.rpmdb
20M.查看指定文件夹下所有文件大小(包括子文件夹)# du-h ftp
3.8G ftp/sanya/doc
3.8G ftp/sanya
4.0K ftp/testftp/doc
1.4M ftp/testftp
875M ftp/platform/doc/002-录像
27M ftp/platform/doc/001-PDF
5.2M ftp/platform/doc/BBFlash
1.2G ftp/platform/doc/003-录音
2.1G ftp/platform/doc
2.1G ftp/platform
4.0K ftp/pmo/doc
20K ftp/pmo
36M ftp/uf/doc/innovate-201207
36M ftp/uf/doc
36M ftp/uf
446M ftp/code/doc
446M ftp/code
6.3G ftp查看指定文件大小# du-h./package/compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
184K./package/compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm查看指定文件夹大小# du-hs ftp
6.3G ftp统计总数大小
du-sh xmldb/
du-sm* sort-n//统计当前目录大小并安大小排序
du-sk* sort-n
du-sk* grep guojf//看一个人的大小
du-m cut-d"/"-f 2//看第二个/字符前的文字查看此文件夹有多少文件/*/*/*有多少文件
du xmldb/
du xmldb/*/*/* wc-l
40752解释:
wc [-lmw]参数说明:-l:多少行-m:多少字符-w:多少字参数含义如下:-s对每个Names参数只给出占用的数据块总数。-a递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。-b以字节为单位列出磁盘空间使用情况(系统缺省以 k字节为单位)。-k以1024字节为单位列出磁盘空间使用情况。-c最后再加上一个总计(系统缺省设置)。-l计算所有的文件大小。

阅读剩余
THE END