Etiket arşivi: linux performance sysadmin

Linux Performans Değerlendirmesi ve Arttırımı

Linux Performans

İşletim sisteminin ve mevcut donanımların takibi performansın arttırılmasına yönelik adımlar atılabilmesi için veya en kötü ihtimalle mevcut performans değerlerinin korunabilmesi için ve ayrıca oluşan dar boğazların tespiti için oldukça önemlidir. Linux performans ayarları hakkında güzel bir doküman oluşturdum.

Bu yazıda genel olarak donanımlarımızı ve işletim sistemimizi kontrol edebileceğimiz temel komutlardan bahsedeceğim. Başka bir söylemle; çiftçinin dostu komutları çıktılarıyla birlikte size göstermeye çalışacağım.

Linux Performans
Linux Performans Değerlendirmesi ve Arttırımı

 1) uptime veya w

NAME
w – Show who is logged on and what they are doing.
uptime – Tell how long the system has been running.

Ben daha çok w kullanmayı seviyorum. Girdiğim her sunucuda çalıştırdığım ilk komut, ne yapacağımı düşünürken de sürekli olarak çalıştırdığım komuttur. Bu komutun çıktıları arasında en çok dikkat ettiğim load average kısmıdır.

[codesyntax lang=”bash” lines=”no” title=”w komutu çıktısı”]

fd@mf:~$ w
 14:23:59 up 94 days,  4:41,  1 user,  load average: 1.44, 1.35, 1.48
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
fd       pts/5    fd.fikridal.com  12:24    0.00s  0.04s  0.00s w

[/codesyntax]

Burada nelere dikkat etmeliyiz;
a) load average: 1.44, 1.35, 1.48
Genel olarak sunucumuzun ne kadar yük altında çalıştığını bir süre sonra biliyor oluruz ve load average ortalamanın üzerindeyse kaynaklarımızı neyin tükettiğini anlamak için diğer komutları kullanabiliriz.
b) Sunucuya kimler bağlı ve ne yapıyorlar?
c) Sunucunun uptime süresi.
2) dmesg

NAME
dmesg – print or control the kernel ring buffer

 

[codesyntax lang=”bash” lines=”no” title=”dmesg komutu çıktısı”]

fd@mf:~$ dmesg -T | tail
[Fri Feb 26 16:55:13 2016] raid6: sse2x2 11329 MB/s
[Fri Feb 26 16:55:13 2016] raid6: sse2x4 13074 MB/s
[Fri Feb 26 16:55:13 2016] raid6: using algorithm sse2x4 (13074 MB/s)
[Fri Feb 26 16:55:13 2016] raid6: using ssse3x2 recovery algorithm
[Fri Feb 26 16:55:13 2016] xor: automatically using best checksumming function:
[Fri Feb 26 16:55:13 2016] avx : 24616.000 MB/sec
[Fri Feb 26 16:55:13 2016] Btrfs loaded
[Fri Feb 26 16:55:27 2016] audit: type=1400 audit(1456498841.444:30): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=29683 comm="apparmor_parser"
[Fri Feb 26 16:55:30 2016] audit: type=1400 audit(1456498843.580:31): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/mysqld" pid=29768 comm="apparmor_parser"
[Fri Apr 15 11:39:21 2016] TCP: request_sock_TCP: Possible SYN flooding on port 8080. Sending cookies. Check SNMP counters.
fd@mf:~$

[/codesyntax]

Görüldüğü üzere standart dmesg çıktısını biraz düzenledik; öncelikle zaman damgasını human-readable bir hale getirdik, sonrada buradan aldığımız çıktının son 10 satırını listeledik.

Aynı çıktıyı dmesg –ctime | tail komutu ile de alabilirsiniz.

Burada nelere dikkat etmeliyiz?

a) Öncelikle herhangi bir error, kernel panic vb var mı?

b) Info dahi olsa mesajları inceleyip ne olduğunu anlamak.

c) En son satır ne zaman yazılmış bunu aklımızın bir kenarı yazmak ve bir sonraki komut tekrarında neler değişmiş bakmak faydalı olacaktır.
3) top

NAME
top – display Linux processes

Direkt top olarak çalıştırabilirsiniz, shift+m ile memory bazlı sort yapabilirsiniz.

[codesyntax lang=”bash” lines=”no” title=”top komutu çıktısı” bookmarkname=”fikridal.com”]

top - 12:33:26 up 94 days,  2:51,  1 user,  load average: 1.45, 1.19, 1.17
Tasks: 111 total,   6 running, 105 sleeping,   0 stopped,   0 zombie
%Cpu(s): 66.1 us,  1.2 sy,  0.0 ni, 32.4 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem:   5079644 total,  4519028 used,   560616 free,   258960 buffers
KiB Swap:  2095100 total,        0 used,  2095100 free.  3536648 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 2220 www-data  20   0  357528  66560  46184 S  55.9  1.3   1:12.02 php5-fpm
 2228 www-data  20   0  368764  77044  45608 R  29.0  1.5   0:36.08 php5-fpm
 2241 www-data  20   0  346664  32656  21180 S  24.6  0.6   0:02.13 php5-fpm
 2242 www-data  20   0  343576  29212  20924 S  20.0  0.6   0:02.21 php5-fpm
29695 mysql     20   0 1149108 198832  11688 S   4.0  3.9   2580:53 mysqld
11919 ts        20   0 1062412  23480   9280 S   1.0  0.5   1508:50 ts3server_linux
10150 root      20   0  260388  10644   7712 R   0.7  0.2   1640:05 sc_serv
10155 root      20   0  260908  14452   7776 R   0.7  0.3   1519:22 sc_serv
13942 root      20   0  261692  13244   7868 R   0.7  0.3   1387:35 sc_serv

[/codesyntax]

Nelere dikkat etmeliyiz?

a) En çok cpu ve memoryi hangi programlar kullanıyor, normal mi?

b) zombie process var mı?

c)

%Cpu(s): 66.1 us,  1.2 sy,  0.0 ni, 32.4 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
bu kısım değerleri önemli, özellikle idle kısmının 0'dan uzak olması, iowait kısmının sıfıra yakın olması önemlidir.

 

4) free

NAME
free – Display amount of free and used memory in the system

free -m daha kullanışlı bir parametre..

[codesyntax lang="bash" lines="no" title="free komutu çıktısı"]
fd@mf:~$ sudo free -m
             total       used       free     shared    buffers     cached
Mem:          4960       4378        581         64        252       3453
-/+ buffers/cache:        671       4288
Swap:         2045          0       2045
fd@mf:~$
[/codesyntax]

Nelere dikkat ederiz;

a) Mem – free kısmında mutlaka boş alan olmalı

b) swap ne kadar kullanmazsak o kadar sağlıklı

5) vmstat

NAME
vmstat – Report virtual memory statistics

vmstat 3 5

Her 3 saniyede 5 kez vmstat bilgilerini ver ve işlemi durdur.

[codesyntax lang=”bash” lines=”no” title=”vmstat komutu çıktısı”]

fd@mf:~$ sudo vmstat 3 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 571284 258960 3536984    0    0     0    30    2    2 28  1 68  2  0
 0  0      0 585844 258960 3537016    0    0     0    33 3178 6754 52  1 46  0  0
 0  0      0 588576 258960 3537016    0    0     0     0 2921 6646 53  2 45  0  0
 1  0      0 568028 258960 3537016    0    0     0    29 3404 7135 48  2 48  2  0
 1  0      0 580268 258960 3537016    0    0     0    28 3479 6940 47  2 46  6  0

[/codesyntax]

6) mpstat

NAME
mpstat – Report processors related statistics.

mpstat -P ALL 3 3

Her 3 saniyede 3 kez mpstat bilgilerini ver ve işlemi durdur.

[codesyntax lang=”bash” lines=”no” title=”mpstat komutu çıktısı”]

fd@mf:~$ sudo mpstat -P ALL 3 3
Linux 3.19.0-25-generic (mf)    04/15/2016      _x86_64_        (2 CPU)

12:43:27 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:43:30 PM  all   43.97    0.00    1.02    0.34    0.00    0.17    0.00    0.00    0.00   54.50
12:43:30 PM    0   34.93    0.00    1.37    0.34    0.00    0.00    0.00    0.00    0.00   63.36
12:43:30 PM    1   53.24    0.00    0.68    0.00    0.00    0.00    0.00    0.00    0.00   46.08

12:43:30 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:43:33 PM  all   53.11    0.00    2.02    0.00    0.00    0.00    0.00    0.00    0.00   44.87
12:43:33 PM    0   59.53    0.00    1.34    0.00    0.00    0.33    0.00    0.00    0.00   38.80
12:43:33 PM    1   46.46    0.00    2.36    0.00    0.00    0.00    0.00    0.00    0.00   51.18

12:43:33 PM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
12:43:36 PM  all   59.05    0.00    1.52    4.74    0.00    0.00    0.00    0.00    0.00   34.69
12:43:36 PM    0   44.90    0.00    1.36    4.08    0.00    0.00    0.00    0.00    0.00   49.66
12:43:36 PM    1   73.40    0.00    1.68    5.39    0.00    0.00    0.00    0.00    0.00   19.53

Average:     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
Average:     all   52.06    0.00    1.52    1.69    0.00    0.06    0.00    0.00    0.00   44.68
Average:       0   46.55    0.00    1.36    1.47    0.00    0.11    0.00    0.00    0.00   50.51
Average:       1   57.72    0.00    1.58    1.80    0.00    0.00    0.00    0.00    0.00   38.90

[/codesyntax]

7) pidstat

NAME
pidstat – Report statistics for Linux tasks.

pidstat 3 3

Her 3 saniyede 3 kez pidstat bilgilerini ver ve işlemi durdur.

[codesyntax lang=”bash” lines=”no” title=”pidstat komutu çıktısı”]

fd@mf:~$ pidstat 3 3
Linux 3.19.0-25-generic (mf)    04/15/2016      _x86_64_        (2 CPU)

02:15:59 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
02:16:02 PM     0         7    0.00    0.33    0.00    0.33     1  rcu_sched
02:16:02 PM  1000      2158    0.33    0.00    0.00    0.33     1  sshd
02:16:02 PM    33      3756   38.54    1.33    0.00   39.87     1  php5-fpm
02:16:02 PM    33      3757   32.23    1.33    0.00   33.55     1  php5-fpm
02:16:02 PM    33      3758   36.21    1.00    0.00   37.21     0  php5-fpm
02:16:02 PM     0     10150    0.33    0.66    0.00    1.00     1  sc_serv
02:16:02 PM     0     10155    0.33    0.33    0.00    0.66     1  sc_serv
02:16:02 PM  1003     11919    0.33    0.66    0.00    1.00     1  ts3server_linux
02:16:02 PM     0     13942    0.00    1.00    0.00    1.00     1  sc_serv
02:16:02 PM   105     29695    6.64    1.00    0.00    7.64     0  mysqld
02:16:02 PM     0     31418    0.33    0.00    0.00    0.33     1  nginx

02:16:02 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
02:16:05 PM    33      3756   44.00    2.33    0.00   46.33     0  php5-fpm
02:16:05 PM    33      3757   64.67    1.33    0.00   66.00     1  php5-fpm
02:16:05 PM    33      3758   42.33    0.67    0.00   43.00     1  php5-fpm
02:16:05 PM    33      3762   16.00    0.67    0.00   16.67     0  php5-fpm
02:16:05 PM     0      7836    0.33    0.00    0.00    0.33     0  vmtoolsd
02:16:05 PM     0     10150    0.00    0.33    0.00    0.33     0  sc_serv
02:16:05 PM     0     10155    0.67    0.00    0.00    0.67     0  sc_serv
02:16:05 PM  1003     11919    0.00    1.00    0.00    1.00     1  ts3server_linux
02:16:05 PM     0     13942    0.33    0.33    0.00    0.67     0  sc_serv
02:16:05 PM   105     29695    7.67    1.00    0.00    8.67     1  mysqld

02:16:05 PM   UID       PID    %usr %system  %guest    %CPU   CPU  Command
02:16:08 PM     0        27    0.00    0.33    0.00    0.33     0  khugepaged
02:16:08 PM    33      3757   49.33    1.00    0.00   50.33     1  php5-fpm
02:16:08 PM    33      3758   34.33    1.00    0.00   35.33     1  php5-fpm
02:16:08 PM  1000      3761    0.00    0.33    0.00    0.33     0  pidstat
02:16:08 PM    33      3762   29.33    0.33    0.00   29.67     0  php5-fpm
02:16:08 PM     0     10150    0.33    0.33    0.00    0.67     1  sc_serv
02:16:08 PM     0     10155    0.33    0.00    0.00    0.33     1  sc_serv
02:16:08 PM  1003     11919    0.00    0.33    0.00    0.33     1  ts3server_linux
02:16:08 PM     0     13942    0.67    0.33    0.00    1.00     1  sc_serv
02:16:08 PM   105     29695    4.33    1.33    0.00    5.67     0  mysqld
02:16:08 PM     0     31418    0.33    0.00    0.00    0.33     1  nginx

Average:      UID       PID    %usr %system  %guest    %CPU   CPU  Command
Average:        0         7    0.00    0.11    0.00    0.11     -  rcu_sched
Average:        0        27    0.00    0.11    0.00    0.11     -  khugepaged
Average:     1000      2158    0.11    0.00    0.00    0.11     -  sshd
Average:       33      3757   48.72    1.22    0.00   49.94     -  php5-fpm
Average:       33      3758   37.62    0.89    0.00   38.51     -  php5-fpm
Average:     1000      3761    0.00    0.11    0.00    0.11     -  pidstat
Average:       33      3762   15.09    0.33    0.00   15.43     -  php5-fpm
Average:        0      7836    0.11    0.00    0.00    0.11     -  vmtoolsd
Average:        0     10150    0.22    0.44    0.00    0.67     -  sc_serv
Average:        0     10155    0.44    0.11    0.00    0.55     -  sc_serv
Average:     1003     11919    0.11    0.67    0.00    0.78     -  ts3server_linux
Average:        0     13942    0.33    0.55    0.00    0.89     -  sc_serv
Average:      105     29695    6.22    1.11    0.00    7.33     -  mysqld
Average:        0     31418    0.22    0.00    0.00    0.22     -  nginx

[/codesyntax]

8) iostat

NAME
iostat – Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.

-x Display extended statistics.

-z  Tell iostat to omit output for any devices for which there was no activity during the sample period.

iostat -xz 3 3

Her 3 saniyede 3 kez iostat bilgilerini xz parametreleriyle ver ve işlemi durdur.

[codesyntax lang=”bash” lines=”no” title=”iostat komutu çıktısı”]

fd@mf:~$ iostat -xz 3 3
Linux 3.19.0-25-generic (mf)    04/15/2016      _x86_64_        (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          28.49    0.00    1.41    2.26    0.00   67.83

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00     7.55    0.01    4.34     0.24    59.28    27.39     0.19   44.35    8.30   44.43  14.07   6.11

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          43.41    0.00    1.52   28.21    0.00   26.86

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    47.00    0.00   19.00     0.00   265.33    27.93     0.89   46.74    0.00   46.74  40.35  76.67

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          33.67    0.00    1.52   18.61    0.00   46.19

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
sda               0.00    91.67    0.00   33.00     0.00   498.67    30.22     0.51   15.39    0.00   15.39  15.35  50.67

fd@mf:~$

[/codesyntax]

9) sar

NAME
sar – Collect, report, or save system activity information.

sar -n DEV,EDEV 1 3

[codesyntax lang=”bash” lines=”no” title=”sar komutu çıktısı”]

fd@mf:~$ sar -n DEV,EDEV 1 3
Linux 3.19.0-25-generic (mf)    04/15/2016      _x86_64_        (2 CPU)

02:20:22 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
02:20:23 PM      eth0    708.00    738.00     76.07   1066.05      0.00      0.00      0.00      0.87
02:20:23 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:20:22 PM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
02:20:23 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:20:23 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:20:23 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
02:20:24 PM      eth0    116.00    220.00     29.10    304.87      0.00      0.00      0.00      0.25
02:20:24 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:20:23 PM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
02:20:24 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:20:24 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:20:24 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
02:20:25 PM      eth0    317.00    319.00     43.75    439.61      0.00      0.00      0.00      0.36
02:20:25 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

02:20:24 PM     IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
02:20:25 PM      eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
02:20:25 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
Average:         eth0    380.33    425.67     49.64    603.51      0.00      0.00      0.00      0.49
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

Average:        IFACE   rxerr/s   txerr/s    coll/s  rxdrop/s  txdrop/s  txcarr/s  rxfram/s  rxfifo/s  txfifo/s
Average:         eth0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:           lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

[/codesyntax]

sar -n TCP,ETCP 1 3

[codesyntax lang=”bash” lines=”no” title=”sar komutu çıktısı 2″]

fd@mf:~$ sar -n TCP,ETCP 1 3
Linux 3.19.0-25-generic (mf)    04/15/2016      _x86_64_        (2 CPU)

02:22:42 PM  active/s passive/s    iseg/s    oseg/s
02:22:43 PM      0.00      0.00    119.00    118.00

02:22:42 PM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
02:22:43 PM      0.00      0.00      3.00      0.00      0.00

02:22:43 PM  active/s passive/s    iseg/s    oseg/s
02:22:44 PM      0.00      0.00     33.00     32.00

02:22:43 PM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
02:22:44 PM      0.00      0.00      2.00      0.00      0.00

02:22:44 PM  active/s passive/s    iseg/s    oseg/s
02:22:45 PM      0.00      0.00     22.00     23.00

02:22:44 PM  atmptf/s  estres/s retrans/s isegerr/s   orsts/s
02:22:45 PM      0.00      0.00      3.00      0.00      0.00

Average:     active/s passive/s    iseg/s    oseg/s
Average:         0.00      0.00     58.00     57.67

Average:     atmptf/s  estres/s retrans/s isegerr/s   orsts/s
Average:         0.00      0.00      2.67      0.00      0.00

[/codesyntax]

Çiftçinin dostu, halk kahramanı komutlarımızın bir kısmı bunlardır. Daha fazla detaylandırmak isterdim…