Tuning Your File System
In case you didn't know, a file system is a way of storing data in a structured way on a disk/usb drive or other device. Every group or person who designs a file system will make some design decisions that make their file system different to others, it may perform exceptionally well with large files or with lots of small files... either way, they all have their own unique selling point. Now, in order to meet their design aim, something else will have no doubt been compromised and this may affect performance in the way you want to use the file system. If you're lucky, the designers of the file system may have allowed you to tweak some parameters to change how it performs (specifically ext2, ext3 and ext4) and to do this the following tools can be used;
dumpe2fs - Shows file system information for ext2, ext3 and ext4 file systems and can be run on mounted or unmounted file systems.
dumpe2fs -h /dev/sdb1
It displays information such as...
Last mounted on: /data1
Filesystem UUID: 4bc5430c-fb5c-4fdb-b7d0-7785254a9e1d
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Filesystem created: Sat Jun 28 07:31:03 2014
Last mount time: Tue Oct 21 20:40:21 2014
Last write time: Tue Oct 21 20:40:21 2014
Mount count: 74
Maximum mount count: 33
Last checked: Sat Jun 28 07:31:03 2014
Check interval: 15552000 (6 months)
Next check after: Thu Dec 25 06:31:03 2014
Lifetime writes: 240 GB
Directory Hash Seed: 4b2b6b77-44da-4fdc-a1c1-8e21421eafe3
Journal backup: inode blocks
Journal features: journal_incompat_revoke
Journal size: 128M
Journal length: 32768
Journal sequence: 0x0001282d
Journal start: 0
Now, with the information gleaned from the above command, you can alter many aspects of the file system using;
tune2fs - Enables you to change certain ext2, ext3 and ext4 file system parameters
There are many parameters and options, but the ones you will use most are below...
Sets the number of times the file system can be mounted before re-check (50 in this case)
tune2fs -c 50 /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 50
Setting -c 0 or -c -1 means that the check is disabled although this is strongly discouraged.
Adjust the time period between checks. This means it will re-check after a certain number of days, months or weeks regardless of how many times its mounted (every 4 weeks in this case)
tune2fs -i 4w /dev/sdb1
tune2fs 1.41.12 (17-May-2010)
Setting interval between checks to 2419200 seconds
debugfs - Interactively debug and change the states of ext2, ext3 and ext4 file systems.
debugfs /dev/sdb1
debugfs 1.41.12 (17-May-2010)
debugfs:
You can type options at the debugfs: command prompt such as stat filename to display the inode data of a file, or extract a file from damaged and unmountable file system using write internal-file external-file.
e2fsck - Checks and corrects health issues on ext2, ext3 or ext4 file systems. On journalling systems (ext3 and ext4) that have been shut down uncleanly, this will attempt to replay the journal first before attempting other checks. fsck is a tool with similar aims as e2fsck but will work with a wider range of file systems.
Run an automatic repair on the specified file system, add any bad blocks found to the bad blocks list and be verbose. Only run when the file system is un-mounted.
e2fsck -pcv /dev/sdb1
You can also run the commands without any parameters...
fsck /dev/sdb1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
/dev/sdb1 has been mounted 78 times without being checked, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 95366/244195328 files (3.0% non-contiguous), 62290712/976754176 blocks
Monitoring Disk Usage
The next two commands aren't really maintenance tools, but are away for a System Administrator to find out how much of the file system is being utilised and/or how much of it is remaining.
df - Shows disk space usage by partition
The most used version of this command will be to show space information for all physical partitions (remove -h to have sizes in bytes)
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_box-lv_root
50G 2.6G 45G 6% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 485M 127M 333M 28% /boot
/dev/mapper/vg_box-lv_home
405G 315M 385G 1% /home
/dev/sdb1 3.6T 192G 3.3T 6% /data1
As above but with the file system type specified also
df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_box-lv_root
ext4 50G 2.6G 45G 6% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 ext4 485M 127M 333M 28% /boot
/dev/mapper/vg_box-lv_home
ext4 405G 315M 385G 1% /home
/dev/sdb1 ext4 3.6T 192G 3.3T 6% /data1
du - Shows disk space usage by directory
List all directories from / with the directory size in human readable form (A really long list!)
du / -h
List all directories below the current location with directory size with total size at end (in human readable format)
du . -hc
List the cumulative size of directories below current point (in human readable format)
du . -hs
df - Shows disk space usage by partition
The most used version of this command will be to show space information for all physical partitions (remove -h to have sizes in bytes)
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_box-lv_root
50G 2.6G 45G 6% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 485M 127M 333M 28% /boot
/dev/mapper/vg_box-lv_home
405G 315M 385G 1% /home
/dev/sdb1 3.6T 192G 3.3T 6% /data1
As above but with the file system type specified also
df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg_box-lv_root
ext4 50G 2.6G 45G 6% /
tmpfs tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sda1 ext4 485M 127M 333M 28% /boot
/dev/mapper/vg_box-lv_home
ext4 405G 315M 385G 1% /home
/dev/sdb1 ext4 3.6T 192G 3.3T 6% /data1
Show available and used inodes rather than blocks
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg_cutebox-lv_root
3276800 86155 3190645 3% /
tmpfs 489354 1 489353 1% /dev/shm
/dev/sda1 128016 62 127954 1% /boot
/dev/mapper/vg_cutebox-lv_home
26968064 3217 26964847 1% /home
/dev/sdb1 244195328 100750 244094578 1% /data1
du - Shows disk space usage by directory
List all directories from / with the directory size in human readable form (A really long list!)
du / -h
List all directories below the current location with directory size with total size at end (in human readable format)
du . -hc
List the cumulative size of directories below current point (in human readable format)
du . -hs
No comments:
Post a Comment