Linux系统排查3——I/O篇

  当磁盘无法写入的时候,一般有以下可能:

  • 文件系统只读
  • 磁盘已满
  • I节点使用完

一、 遇到只读的文件系统

  文件系统自动设置成只读可能是系统自我保护的一种机制,因此需要实现弄清究竟是什么原因造成了文件系统的只读。如果想要改变文件系统的只读属性,重新挂载目标分区即可。

例1. 重新挂载改变/home分区的读写属性

# mount -o remount, rw /home

  -o 选项后面接了两个mount 命令的专有选项,remount是指重新挂载指定文件系统,rw指定重新挂载时的读写属性,该命令不改变挂载点,只是改变指定分区的读写属性。

二、 磁盘满

  磁盘使用率、剩余空间等可以使用 df 命令查看,

例2. 查看当前已挂载的所有分区及使用情况

 1 # df -h
 2 Filesystem      Size  Used Avail Use% Mounted on
 3 /dev/sda2       133G  8.6G  118G   7% /
 4 none            4.0K     0  4.0K   0% /sys/fs/cgroup
 5 udev            5.9G  4.0K  5.9G   1% /dev
 6 tmpfs           1.2G  868K  1.2G   1% /run
 7 none            5.0M     0  5.0M   0% /run/lock
 8 none            5.9G     0  5.9G   0% /run/shm
 9 none            100M     0  100M   0% /run/user
10 /dev/sda1        93M  3.4M   90M   4% /boot/efi

  -h 自动以适合阅读的单位显示,该例子的磁盘空间显然还很充分。

  有时候会发现,df 结果中的使用空间 "Used" 和容量 "Size" 存在一定的差距,但是可用空间 "Avail" 却所剩无几,同时使用率 “Use %”居高不下,甚至达到100%。这种情况并不奇怪,因为Linux为了避免系统存储空间完全占用导致的root用户无法登陆,为root用户保留了一块保留区块,供磁盘使用率过高时root用户登陆系统完成必要的清理操作。仅有root用户可以在这些保留块中写入数据,可以通过 tune2fs 工具查看保留块的大小。

例3. 使用tune2fs查看系统保留块

 1 # tune2fs -l /dev/sda2 | grep -i "block"
 2 Block count:              35400448
 3 Reserved block count:     1770022
 4 Free blocks:              33183919
 5 First block:              0
 6 Block size:               4096
 7 Reserved GDT blocks:      1015
 8 Blocks per group:         32768
 9 Inode blocks per group:   512
10 Flex block group size:    16
11 Reserved blocks uid:      0 (user root)
12 Reserved blocks gid:      0 (group root)
13 Journal backup:           inode blocks

  其中,第3行显示系统保留块的数量,第6行显示每块的大小(4KB),二者相乘可以计算保留区块的总大小;

  第11, 12行显示能对保留区块执行写入操作的用户和用户组编号,这里都是root;

  上面只是查看某个文件系统的占用,如何知道这个文件系统中相关目录的空间占用情况呢?du命令可以查看文件系统上所有目录的大小。

例4. 使用du查看目录占用的空间

1 # cd /
2 # du -ckx | sort -n > /tmp/dir_space

  使用 tail 查看保存的/tmp/dir_space文件可以看到根文件系统下最大的10个目录:

 1 674236    ./var/log
 2 904232    ./usr/lib
 3 1372776    ./var/lib/glance/images
 4 1372868    ./var/lib/glance
 5 1523512    ./var/lib/mongodb
 6 2082052    ./usr
 7 4003024    ./var/lib
 8 4878944    ./var
 9 8798036    .
10 8798036    total

  这里可以看到/var/log目录是很大的,由于/var/log/目录存放的是一些日志文件,日志文件通常也是占用系统空间的源泉,可以通过释放日志文件空间来获得存储空间:

1 # ls -lhs /var/log/syslog.1
2 1.3M -rw-r----- 1 syslog adm 1.3M Aug 12 06:34 syslog.1
3 # bash -c "> /var/log/syslog.1"
4 # ls -lhs /var/log/syslog.1
5 0 -rw-r----- 1 syslog adm 0 Aug 12 15:16 syslog.1

  该例子将分卷后的syslog文件截断,实际上就是删除指定日志文件的内容。当然也可以直接删除对应的日志文件。

三、I节点不足

  当df显示磁盘空间充足,但文件系统却报错自己已满,无法写入时,需要检查是否耗尽了I节点。

  在系统中创建一个新文件将会获得一个唯一的I节点,一旦把I节点用光,就无法再创建新的文件了,这在系统创建大量文件时才有可能发生,使用 df -i 命令可以查看I节点的使用情况。

例5. 查看I节点的使用情况

 1 # df -i
 2 Filesystem      Inodes  IUsed   IFree IUse% Mounted on
 3 /dev/sda2      8855552 219633 8635919    3% /
 4 none           1532516      2 1532514    1% /sys/fs/cgroup
 5 udev           1529802    463 1529339    1% /dev
 6 tmpfs          1532516    523 1531993    1% /run
 7 none           1532516     12 1532504    1% /run/lock
 8 none           1532516      1 1532515    1% /run/shm
 9 none           1532516      3 1532513    1% /run/user
10 /dev/sda1            0      0       0     - /boot/efi

  可以看到当前各个文件系统的I节点充足。

  一旦遇到I节点用光的情形,有以下几种选择:

  1. 删除大量文件

  2. 将大量文件移动到其他的文件系统中;

  3. 将大量的文件压缩成一个文件;

  4. 备份当前文件系统中的所有文件,重新格式化之前的硬盘,获得更多的I节点,再将文件复制回去。

  

  

时间: 2024-11-08 22:11:10

Linux系统排查3——I/O篇的相关文章

Linux系统排查2——CPU负载篇

本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. 不可打扰:阻塞,正在等待I/O 例1. 使用uptime查看系统负载 # uptime 19:26:17 up 49 days, 7:34, 1 user, load average: 0.67, 0.51, 0.41 这里我们关注的是最后三列,即系统1分钟.5分钟.15分钟内的平均负载,判断一个系

Linux系统排查1——内存篇

常见工作中,计算机系统的资源主要包括CPU,内存,硬盘以及网络,过度使用这些资源将使系统陷入困境.本系列一共四篇博文,结合我在实习期间的学习,介绍一些常见的Linux系统排障工具及方法. 第1篇——内存篇 第2篇——CPU篇 第3篇——磁盘I/O篇 第4篇——网络篇 事实上,当上述服务器系统资源中的任何一个遭遇瓶颈,都会带来服务器性能的下降,典型的症状就是系统运行迟缓. 本文从以下几个角度介绍Linux系统内存相关的排查. 1. 内存的使用率如何查看,使用率真的很高吗 2. 内存用在哪里了 3.

Linux系统排查4——网络篇

用于排查Linux系统的网络故障. 网络排查一般是有一定的思路和顺序的,其实排查的思路就是根据具体的问题逐段排除故障可能发生的地方,最终确定问题. 所以首先要问一问,网络问题是什么,是不通,还是慢? 1. 如果是网络不通,要定位具体的问题,一般是不断尝试排除不可能故障的地方,最终定位问题根源.一般需要查看 是否接入到链路 是否启用了相应的网卡 本地网络是否连接 DNS故障 能否路由到目标主机 远程端口是否开放 2. 如果是网络速度慢,一般有以下几个方式定位问题源: DNS是否是问题的源头 查看路

(转)Linux系统排查4——网络篇

原文:http://www.cnblogs.com/Security-Darren/p/4700387.html 用于排查Linux系统的网络故障. 网络排查一般是有一定的思路和顺序的,其实排查的思路就是根据具体的问题逐段排除故障可能发生的地方,最终确定问题. 所以首先要问一问,网络问题是什么,是不通,还是慢? 1. 如果是网络不通,要定位具体的问题,一般是不断尝试排除不可能故障的地方,最终定位问题根源.一般需要查看 是否接入到链路 是否启用了相应的网卡 本地网络是否连接 DNS故障 能否路由到

linux系统的学习经验首篇

1.linux打开terminal,两种最简单的办法,第一种,直接Ctrl+Alt+T:第二种,Alt+F2,输入gnome-terminal:更复杂的不建议使用.2.linux没有盘符的概念,只有路径,分为相对路径和绝对路径:绝对路径表示为:/路径名称,表示从根目录或者家目录开始的详细路径:相对路径表示当前目录所在的路径.3.linux系统区分大小写,terminal下ls查看,蓝颜色为文件夹,白颜色为文件,使用ls -l查看文件,左侧开头字母为D代表这些都是文件夹信息,为-则表示这些问文件内

Linux系统排查——CPU负载篇

本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. 不可打扰:阻塞,正在等待I/O 1.使用uptime查看系统负载 # uptime 19:26:17 up 49 days, 7:34, 1 user, load average: 0.67, 0.51, 0.41 这里我们关注的是最后三列,即系统1分钟.5分钟.15分钟内的平均负载,判断一个系统负

Linux系统压缩及解压缩

==============================================================================  Linux系统解压缩 ============================================================================== 概述: 本篇将介绍Linux系统中的压缩和解压缩的工具,以及归档工具(tar,cpio) compress/uncompress:对应 .Z 结尾的压缩格式文件

Linux系统保证安全的必要措施

作为一种开放源代码的操作系统,Linux服务器以其安全.高效和稳定的显著优势而得以广泛的应用.随着而来的就是--Linux系统的安全问题. 本篇博客主要围绕Linux系统的安全问题:一.账号安全控制:二.系统引导和登录控制:三.弱口令检测.端口扫描. 一.账号安全控制 用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机.在Linux系统中,提供了多种机制来确保用户账号的正当.安全地使用. 1.基本(必要)的安全措施 (1)系统账号的清理 在Linux

Linux系统中的硬件问题如何排查?(1)

在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工作,即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,本文分享一些实用的技巧与处理方法,希望有助于读者朋友理解.查明并最终搞定硬件难题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 [51CTO精选译文]这篇教程的诞生过程实在相当纠结.很长时间以来我一直在考虑要不要写这么一篇东西,最主要的原因在于对硬件相关问题进行故障排查可能是计算机管理领域最棘手的工作.即使是经验相当丰富的用户有时也会遇上自己搞不定的状况