Проверка файловых систем, мониторинг системы


  Ключевые слова: fsck, tune2fs, mount, umount


tune2fs позволяет поменять настраиваемые параметры

файловой системы -c max-mount-counts -m reserved-blocks-percentage и т.п.


    tune2fs -m 1 /dev/hd-name # найдет вам еще 50Mb свободного места,

              # и позволит учинить на оставшемся клочке

              # свободного места катастрофическую фрагментацию


Стандартное лечение файловой системы:


    fsck -y /dev/hd-name


Форсированное лечение с проверкой и "замещением" bad-блоков


    fsck -y -c -f /dev/hd-name

 # -y   неинтерактивное лечение "yes" на все вопросы

 # -c   найти bad-блоки readonly тестом и перенести в inod bad-блоков

 # -f   форсировать проверку (игнорировать флаг "fs is clean"

 # -A   проверить файловые системы из файла «/etc/fstab»


Если погиб основной суперблок, добавить ключ -b 8193 или -b 16385  ...

указав запасную копию.


Распечатать размещение служебных структур fs и параметры суберблока

могут команды tune2fs -l и  dumpe2fs


    tune2fs /dev/hd-name

    dumpe2fs /dev/hd-name


tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]

 [-i interval[d|m|w]] [-j] [-J journal_options] [-l]

 [-m reserved_blocks_percent] [-o [^]mount_options[,...]]

 [-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]

 [-M last_mounted_dir] [-O [^]feature[,...]]

 [-E extended-option[,...]] [-T last_check_time] [-U UUID]

 [ -I new_inode_size ] device


Если  погибли  _все_ копии суперблока - последний шанс mke2fs -S  прописать

_только_ структуры суперблоков и описатели групп, не трогая самих данных


    mke2fs -S /dev/hd-name  # Write  superblock and group descriptors only

    fsck -y  /dev/hd-name   # сразу всед за этим запустить fsck


И  даже  это  еще  не  конец.  Для  сильных духом остается отладчик файловой

системы debugfs

  Ключевые слова: free, pmap, ps, sysctl, /etc/sysctl.conf, tload, top, uptime, vmstat, iostat, netstat, sar, df


free - Display amount of free and used memory in the system

# free

             total       used       free     shared    buffers     cached

Mem:       4147096    3725136     421960          0     310108    2367672

-/+ buffers/cache:    1047356    3099740

Swap:      4193268      22012    4171256


pmap - report memory map of a process


       -x   extended       Show the extended format.

       -d   device         Show the device format.

       -q   quiet          Do not display some header/footer lines.

       -V   show version   Displays version of program.


# pmap 1556

1556:   cupsd -C /etc/cups/cupsd.conf

b6d68000     20K r-x--  /lib/libnss_dns-2.12.so

b6d6d000      4K r----  /lib/libnss_dns-2.12.so

b6d6e000      4K rw---  /lib/libnss_dns-2.12.so


sysctl - configure kernel parameters at runtime


tload - graphic representation of system load average

tload [-V] [-s scale] [ -d delay ] [tty]


       The -s scale option allows a vertical scale to  be  specified  for  the

       display (in characters between graph ticks); thus, a smaller value rep-

       resents a larger scale, and vice versa.


       The -d delay sets the delay between graph updates in seconds.


 top - display Linux tasks


       Listed below are top’s available fields.  They  are  always  associated

       with  the  letter shown, regardless of the position you may have estab-

       lished for them with the ’o’ (Order fields) interactive command.


       Any field is selectable as the sort field, and you control whether they

       are  sorted  high-to-low or low-to-high.  For additional information on

       sort provisions see topic 3c. TASK Area Commands.


       a: PID  --  Process Id

          The task’s unique process ID, which periodically wraps, though never

          restarting at zero.


       b: PPID  --  Parent Process Pid

          The process ID of a task’s parent.


       c: RUSER  --  Real User Name

          The real user name of the task’s owner.


       d: UID  --  User Id

          The effective user ID of the task’s owner.


       e: USER  --  User Name

          The effective user name of the task’s owner.


       f: GROUP  --  Group Name

          The effective group name of the task’s owner.


       g: TTY  --  Controlling Tty

          The  name  of  the controlling terminal.  This is usually the device

          (serial port, pty, etc.) from which the  process  was  started,  and

          which  it  uses  for  input  or output.  However, a task need not be

          associated with a terminal, in which case you’ll see ’?’  displayed.


       h: PR  --  Priority

          The priority of the task.


       i: NI  --  Nice value

          The nice value of the task.  A negative nice value means higher pri-

          ority, whereas a positive nice value means lower priority.  Zero  in

          this field simply means priority will not be adjusted in determining

          a task’s dispatchability.


       j: P  --  Last used CPU (SMP)

          A number representing the last used processor.  In a true SMP  envi-

          ronment  this  will likely change frequently since the kernel inten-

          tionally uses weak affinity.  Also, the very act of running top  may

          break  this  weak  affinity  and cause more processes to change CPUs

          more often (because of the extra demand for cpu time).


       k: %CPU  --  CPU usage

          The task’s share of the elapsed  CPU  time  since  the  last  screen

          update,  expressed as a percentage of total CPU time.  In a true SMP

          environment, if ’Irix mode’ is Off, top  will  operate  in  ’Solaris

          mode’  where  a task’s cpu usage will be divided by the total number

          of CPUs.  You toggle ’Irix/Solaris’ modes with the  ’I’  interactive



       l: TIME  --  CPU Time

          Total CPU time the task has used since it started.  When ’Cumulative

          mode’ is On, each process is listed with the cpu time  that  it  and

          its  dead children has used.  You toggle ’Cumulative mode’ with ’S’,

          which is a command-line option and an interactive command.  See  the

          ’S’  interactive  command  for additional information regarding this



       m: TIME+  --  CPU Time, hundredths

          The same as ’TIME’, but reflecting  more  granularity  through  hun-

          dredths of a second.


       n: %MEM  --  Memory usage (RES)

          A task’s currently used share of available physical memory.


       o: VIRT  --  Virtual Image (kb)

          The  total  amount  of virtual memory used by the task.  It includes

          all code, data and  shared  libraries  plus  pages  that  have  been

          swapped  out. (Note: you can define the STATSIZE=1 environment vari-

          able and the VIRT will be calculated from the  /proc/#/state  VmSize



       p: SWAP  --  Swapped size (kb)

          Per-process  swap  values  are  now taken from /proc/#/status VmSwap



       q: RES  --  Resident size (kb)

          The non-swapped physical memory a task has used.


          RES = CODE + DATA.


       r: CODE  --  Code size (kb)

          The amount of physical memory devoted to executable code, also known

          as the ’text resident set’ size or TRS.


       s: DATA  --  Data+Stack size (kb)

          The amount of physical memory devoted to other than executable code,

          also known as the ’data resident set’ size or DRS.


       t: SHR  --  Shared Mem size (kb)

          The amount of shared memory used by a task.  It simply reflects mem-

          ory that could be potentially shared with other processes.


       u: nFLT  --  Page Fault count

          The  number  of  major page faults that have occurred for a task.  A

          page fault occurs when a process attempts to read from or write to a

          virtual  page that is not currently present in its address space.  A

          major page fault is when disk access is involved in making that page



       v: nDRT  --  Dirty Pages count

          The  number  of  pages  that have been modified since they were last

          written to disk.  Dirty pages must be written  to  disk  before  the

          corresponding  physical  memory  location can be used for some other

          virtual page.


       w: S  --  Process Status

          The status of the task which can be one of:

             ’D’ = uninterruptible sleep

             ’R’ = running

             ’S’ = sleeping

             ’T’ = traced or stopped

             ’Z’ = zombie


top - 10:11:37 up 5 days, 21:47,  2 users,  load average: 0.14, 0.12, 0.08

Tasks: 186 total,   1 running, 185 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.8%us,  0.7%sy,  0.0%ni, 97.8%id,  0.5%wa,  0.0%hi,  0.2%si,  0.0%st

Mem:   4147096k total,  3682784k used,   464312k free,   299460k buffers

Swap:  4193268k total,    22012k used,  4171256k free,  2326312k cached


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            


uptime - Tell how long the system has been running.

# uptime

 10:12:58 up 5 days, 21:48,  2 users,  load average: 0.04, 0.09, 0.08


vmstat - Report virtual memory statistics

vmstat [-a] [-n] [-t] [-S unit] [delay [ count]]

# vmstat

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

 0  0  21996 450692 294552 2318820   0    0     3    22   12   27  2  1 97  0  0 

r: Количество процессов которые выполняются в данный момент
b: Количество процессов находящихся в «глубоком сне» (по терминологии виндовс — они зависли), и будут запущены только при появлении свободных ресурсов для этого
swpd: Количество занятого Свопа (SWAP)
free: Количество свободной памяти
buff: Количество памяти выделенной под буфер
cache: Количество памяти занятой под кеш
si: Число загруженных процессов. (количество памяти выгруженной в Своп)
so: Число загруженных процессов. (количество памяти загруженных из Свопа в оперативную пямять)
bi: Количество блоков информации прочитанных с жестких дисков в секунду (blocks/s).
bo: Количество блоков информации записанных на жесткие диски в секунду (blocks/s).
in: Число прерываний устройств (несинхронных). (а если проще то это число прерываний, поступавших от устройств каждую секунду в течение интервала сбора информации.)
cs: Число переключений контекста.
us: Время CPU (в процентах) затраченное на выполнение пользовательских приложений
sy: Время CPU (в процентах) затраченное на выполнение системных приложений (время ядра)
id: Время (в процентах) в течении которого процессор простаивал (не выполняя никаких задач)
wa: Время (в процентах) в течении которого процессор простаивал (не выполняя никаких задач) ожидая когда окончится операция ввода вывода на жесткие диски.


iostat - Report Central Processing Unit (CPU) statistics and input/out-

       put statistics for devices, partitions and network filesystems (NFS).


iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V  ]  [

       -x  ]  [  -z  ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [

       interval [ count ] ]

ease wait...

# iostat

Linux 2.6.39-200.29.2.el6uek.i686 (itsrty-ovs.rb.tkb.lv)  07/25/2012  _i686_ (2 CPU)


avg-cpu:  %user   %nice %system %iowait  %steal   %idle

           1.85    0.02    0.51    0.41    0.00   97.21


Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

fd0               0.00         0.00         0.00         16          0

sda               2.72       146.67        88.06   75000242   45031639

sdb               2.72       146.67        88.06   74998576   45031639

md1               0.07         0.23         0.36     117040     183088

md2               3.70        12.74        85.85    6513938   43898488

md0               0.00         0.01         0.08       4246      41402


netstat  - Print network connections, routing tables, interface statis-

       tics, masquerade connections, and multicast memberships


sar - Collect, report, or save system activity information.

См. пакет «sysstat», /usr/doc/sysstat-<version>/cron-examples/.