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.
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.
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
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
[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:~$
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.
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
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..
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:~$
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.
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
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.
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
7) pidstat
NAME
pidstat – Report statistics for Linux tasks.
pidstat 3 3
Her 3 saniyede 3 kez pidstat bilgilerini ver ve işlemi durdur.
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
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.
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:~$
9) sar
NAME
sar – Collect, report, or save system activity information.
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
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
Çiftçinin dostu, halk kahramanı komutlarımızın bir kısmı bunlardır. Daha fazla detaylandırmak isterdim…
No responses yet