歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

如何解決/tmp(swap)文件系統報無可寫空間的錯誤


系統有時出現如下類似報錯:

WARNING: /tmp: File system full, swap space limit exceeded

出現這種報錯有如下幾種常見的原因:

1)物理內存不夠用;
2)Swap空間不夠用;
3)某些用戶在使用/tmp文件系統;
4)特定程序占用大量內存;
5)某些錯誤的腳本無限耗盡資源。

對於以上的原因造成的報錯可以采取如下措施:

1)增加物理內存。
2)增加Swap - 如下方法可以簡單地實現(注:增加的Swap會隨著系統的重起而消失)

#mkfile [g | k | b | m] /swap
#swap -a /swap

- 運行“swap -l“可以確認追加的Swap。

3)告知用戶/tmp的使用時注意事項。
4)Kill程序。
5)修改腳本。

查找報錯的原因:

- 使用命令可查出占用最大資源的程序或有無無限耗盡資源的腳本。

# /usr/bin/ps -el | sort -rn -k 10

例:如何計算占資源大小

> bash-2.05# /usr/bin/ps -el | sort -rn -k 10
> 8 S 0 585 557 0 40 20 ? 16981 ? ? 0:04 Xsun
> bash-2.05# pagesize
> 8192
>
> 16981 * 8192 = 139108352byte 即 139M

例:有無限耗盡資源的腳本運行時

> 0 S 0 27982 27981 0 40 20 ? 328 ? ? 0:00 sh
> 0 S 0 27979 27978 0 40 20 ? 328 ? ? 0:00 sh
> 0 S 0 27975 27974 0 40 20 ? 328 ? ? 0:00 sh
> 0 S 0 27971 27970 0 40 20 ? 328 ? ? 0:00 sh
> 0 S 0 27967 27966 0 40 20 ? 328 ? ? 0:00 sh
> 0 S 0 27963 27962 0 40 20 ? 328 ? ? 0:00 sh
> 0 S 0 27981 27980 0 40 20 ? 327 ? ? 0:00 sh
> 0 S 0 27980 27979 0 40 20 ? 327 ? ? 0:00 sh
> 0 S 0 27978 27977 0 40 20 ? 327 ? ? 0:00 sh

- 察看有無用戶或程序在使用/tmp ?

# ls -alR /tmp > /log.tmp
# ls -alR /var/tmp > /log.var_tmp

- 其他可察看Memory和IO的命令:

# vmstat 5 5
# iostate 5 5
Copyright © Linux教程網 All Rights Reserved