dal.net.tr olarak global hosting piyasasına giriyoruz.

Web Hosting
Web Hosting

Sevgili arkadaşlar,

Uzun zamandır veri merkezi teknolojileri konusunda hizmet vermekte olan Dal Bilgi Teknolojileri ve Bilişim Sistemleri Ticaret Anonim Şirketi olarak artık hosting sektöründe de yer almamız gerektiğine karar verdik. 2020 yatırımlarımızı bu yönde şekillendirdik ve önümüzdeki haftalarda bol bol reklamlarımızı göreceğiniz aşağıda da detaylarını verdiğim alanlarda dalnet kalitesi ile hizmetlerimiz başlayacaktır.

Neden Hosting Sektörüne Girmeye Karar Verdik?

Aslında sorunun cevabı basit, biz yıllardır kurumsal alanda bu hizmetleri zaten sağlıyorduk, aynı kaliteyi son kullanıcılara da getirebileceğimize inandık. Teknik olarak yeterliliğimiz tam ve hazırken bununla yetinmedik diğer veri merkezi ve hosting firmalarından değerli çalışma arkadaşlarımızı ekibimize dahil ettik. Aslında yeni sezonda yani Eylül ayı ortalarında bitirmeyi planladığımız bu hizmetlerin bir çoğunu Covid19 sayesinde çok daha kısa sürede bitirdik. Burada yazılım ekibimizi, sistem ekibimizi, network ekibimizi ve teknik destek ekibimizi ayrıca kutlarım. Satış ekibimizin değerli üyeleri hem global pazarda firmamızı tanıtacak hamleler yaptılar hem de sitemizin yabancı dillere çevrilmesinde ciddi katkı sağladılar. İnsanların psikolojilerinin dahi bozulduğu böyle bir süreçte tüm konsantrasyonlarını projelerimizde yoğunlaştırdılar.

Hosting Konusunda Ne Gibi Farklarımız Var?

Her zaman söylediğim gibi dalnet’te müşteri memnuniyeti önemlidir. Hizmet sektörünün içerisinde büyümüş ve tam 21 yıl bu sektöre hizmet etmiş biri olarak kötü hizmete asla tahammülüm yok. Herhangi bir müşterimiz haklı bir sebeple şikayet iletirse bizim tarafta ciddi sonuçlara yol açabiliyor. Müşteri memnuniyetinin yanında teknik anlamda elimizdeki projeler vesilesi ile memleketten bir hayli ileride olduğumuzu düşünüyorum. Bu teknolojileri hosting alt yapılarımıza da uyguladık. Örneğin ZFS’nin hızını ve yedekliliğini, CDN teknolojilerinin dağıtık yapılarını vb. Böylelikle hem müşteri memnuniyeti anlamında farklı duygular yaşatırken hem de teknik olarak doyum sağlamanızı istiyoruz.

Hangi servisleri vereceğiz?

Öncelike WordPress Hosting konusunda çok iddialı olduğumuzu söyleyebiliriz, Litespeed, LSCache, Cyberpanel, Cpanel, Softaculous ve CDN karışımı güçlü bir alt yapı hazırladık. İhtiyacınıza göre panel seçeneğini ayarlayıp bir kaç tıkla kurulumu yapabilirsiniz. Ayrıca başka firmalardan taşınma işleri tamamen bize ait. Teknik ekip tarafında WordPress Uzmanları şeklinde bir ekip oluşturduk. Kısa sürede temadan eklentiye kadar her alanda destek vermek istiyoruz. WordPress Hosting paketlerimizi hem içerik hem fiyat yönünden incelemenizi öneririm.

WordPress konusunda bir adım öteye giderek WordPress Bayi Hosting hizmetini de oluşturduk. Burada ajanslar, webmasterlar başlıca hedef kitlemiz. Tüm müşterilerini tek panelden yönetebilecekleri bir alt yapı hazırladık.

Bulut Sunucu tarafında Amazon kadar olamasak bile Digital Ocean’a rakip olacağımız kesin, zira ZEUS projemizde uçtan uca tüm otomasyonuyla bulut sistemimizi tamamlıyoruz. Auto Scale, Load Balancer, Private Cloud seçenekleri başlıca yetenekleri olurken tamamen otomasyon üzerinden ilerleyecek bir yapıdan bahsediyorum. Zeus aslında tam bir datacenter management yazılımı oluyor, sadece cloud server sistemi için değil, CDN sistemimiz için, hosting sistemimiz için, kabinlerde kullandığımız elektrik için dahi bir yapı olarak düşünün. Üzerine moduler olarak her servis için yazılımlar ekleyip tamamen kendimize ait bir alt yapı ile piyasada oynamak istiyoruz.

Yine son hizmetlerimizden biri olan Yönetilen Sunucular ile sunucu ihtiyaçlarınızda teknik olayları olduğu gibi dalnet’in profesyonel ekibine bırakabilirsiniz. Böylelikle işlerinize odaklanırken sunucularınızın performanslı ve güvenli çalışmalarını sağlayabilirsiniz.

Kısacası dalnet tarafında hem yazılımsal hem sistemsel ve networksel değişimler devam ediyor. 2020 yılı içerisinde hosting sektöründe adımızdan söz ettireceğimize inanıyorum.

Destekleriniz için teşekkür ederim.

Saygılarımla,
Fikri DAL

Sistem Yöneticileri ve Adayları

Yaklaşık 20 yıldır Linux yöneten, son 3 yıldır kendi işinin sahibi olan ve bünyesinde 10 kadar personel çalıştıran biri olarak şunu söyleyebilirim ki gerçekten beyin göçüne şahit oldum/oluyorum. 3 yılda 10’dan fazla personel değiştirdim, içlerinde iyi olanları yanımda tutmaya çalışıyorum. Meraklı, özverili, çalışkan ve dürüst insanlara her zaman kapım açıktır. Bu süreçte bir düzineden fazla adam eskittim, özellikle yeni nesil çocuklardan bu özelliklere sahip olanları bulmak gerçekten zor.  Yetişmiş personel bulmak daha da zor. Şu an bilinen büyük kariyer sitelerinde ilanlarımız dönüyor. Başvuru sayıları çok az ve başvuranların içerisinde pazarlamacılar da var. Örneğin 5 yıl tecrübeli adam arıyorum, spesifik olarak Nginx, Gluster, LXC gibi konularda uzmanlık istiyorum, geçen sene mezun olan adam başvuruyor. Amacım kimseyi yermek değil, anlatmak istediğim gerçekten bu özelliklere sahip adamlar ya gittiler (Avrupa, Amerika vb.) ya da sayıları o kadar azaldı ki çalıştıkları yerlerde çok sıkı tutuluyorlar.

Uzun lafın kısası, görünen o ki çok yakında yetişmiş Linux Sistem Yöneticisi bulamayacağız. Bu durumu ön görüp bir kaç yıl önce bir proje ortaya atmıştım. LinuxEvi.. Bu projeyi canlandırmak istiyorum. LinuxEvi kapsamında, SR. Linux Admin, Linux Admin, Jr. Linux Admin insanları periyodik olarak bir araya toplayıp, eğitimler, söyleşiler yapılmasını planlıyorum. Bu amaçla ofisimizde 10 kişilik bir eğitim/toplantı alanı da ayarladık. Bunu canlıya geçirebilmek için desteğinize ihtiyacım var. Web sitesi, organizasyon, eğitim, fikir, plan, program vb her konuda desteğinize açığım.

Bu konu ile ilgilenen öncelikle mesleğin içinden adamlar, sonra bu konuda kendini geliştirmek isteyen arkadaşlar, tasarım, organizasyon gibi konularda destek olabilecek arkadaşlar lütfen benimle şahsi epostam üzerinden iletişim kurunuz.

fikridal (gmail)

Not: Hala 5 yıl tecrübeli tüm linux sistem yöneticilerine ihtiyacım var 🙂

Güncelleme:  Sizlerden gelen talepler doğrultusunda destek verenleri aşağıda paylaşıyorum.

Fikri Dal – Sr. Linux Sys Admin – Dal Bilgi Teknolojileri
Cihan Gedik – Sr. Oracle DB Admin – IBM
Noyan Selçuk Hancıoğlu – System Department Manager – Key Yazılım
Emin Can – Lead Cyber Security Specialist – TANAP
Şemsettin Aksoy – Linux Administrator – IBM
Ronald Zilkovski – Linux System Manager
Serkan Bingöl – MCT, MCSD – Türk Kızılayı
Cihat Erhan Kaba – Front-end Developer
Alican Tilki – Sr. System Administrator – Matriks Bilgi Dağıtım
Vahap Öç – System Administrator – Radore
Ekrem Sekman – Cloud Operations Manager – Bulutistan
Selçuk Fidan – Sr. System Administrator – Bulutistan
Ertuğrul Demirkaya – Software Specialist – Bilge Adam
Kenan Mutlu – System Administrator – Erstream
Fatih Aslan – System Administrator – Tubitak Bilgem
Kemalettin Yeşilkaya – System Administrator – Myra New Media
Cemre Gültekin – System Administrator – Radore
Onur Girgin – System Administrator – Gantek
Cihan Çulha – System Expert
Umurcan Görür – DevOps
Cem Kıyanç – Sr. System Administrator – Trendyol

 

 

 

mdraid kontrol, disk ekle, disk çıkart

Mdraid bana göre Linux’un bize sunduğu sayısız nimetlerden yalnızca biridir. Bugün kısa kısa mdraid için ipuçları vermeye çalışacağım. Genel olarak mdraid nasıl yapılır, nasıl kaldırılırdan ziyade sorun tespiti, müdahale gibi konular üzerinde durmak isterim.

Öncelikle mevcut mdraid durumumuzu görüntüleyelim;
[codesyntax lang=”bash”]
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdk1[0]
117153664 blocks super 1.2 [2/1] [U_]

md127 : active raid1 sdy[1] sdm[0]
499976384 blocks super 1.2 [2/2] [UU]

unused devices: <none>
[/codesyntax]
Görüldüğü üzere md0 raidimizde sorun var. Diyelim ki md0 bizim root ( / ) dizinimiz olsun. Bu durumda diğer diskte, FS’de, partitionda çıkabilecek bir sorunda işletim sistemimizi kaybedebiliriz. Hızlı bir şekilde duruma müdahale etmekte fayda var.

Benim md0 raidimde sdk1 ve sdl1 diskleri mevcut, anladığımda kadarıyla sdl diskinde hardwaresel bir sorun çıkmış ve işletim sistemi diski görmüyor. Senaryo dahilinde sdl diskini değiştirdim ve sıfır bir disk taktım. Henüz üzerinde partition dahi yok.

Öncelikle sdk1 ile eşit boyutta bir partition oluşturmalıyım, bunun için parted komutu işimi görecektir;
[codesyntax lang=”bash”]

parted /dev/sdl

[/codesyntax]
Partition’ın nasıl oluşturulduğuna burada değinmeyeceğim.

mdadm mdraid

Şimdi yukarıdaki uyarıya göre ikinci diski hiç görmediğimiz için herhangi bir şey yapmamıza gerek yok, direkt olarak yeni partitioni raide eklememiz yeterli olacaktır.
[codesyntax lang=”bash”]
# mdadm –manage /dev/md0 –add /dev/sdl1
[/codesyntax]
Bu komutla birlikte ilgili partition raide eklendi, şimdi sistem raide uygun şekilde eşlemeyi yapacaktır. Bunu görmek için de;
[codesyntax lang=”bash”]
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdl1[2] sdk1[0]
117153664 blocks super 1.2 [2/1] [U_]
[===>……………..] recovery = 17.8% (20913856/117153664) finish=7.9min speed=201149K/sec

md127 : active raid1 sdy[1] sdm[0]
499976384 blocks super 1.2 [2/2] [UU]

unused devices: <none>
[/codesyntax]

İlgili disk eşitleniyor. Eşitleme işlemi bittikten sonra md0 karşısındak, [U_] kısmı [UU] şeklinde düzelecektir.

Buraya kadar her şey güzel ancak şöyle senaryolar ile de karşılaşabilirdik;
– Bir disk fiziksel hata vermeye başlar ancak çalışmaya devam edebilirdi.
– Bir diskin ömrünün bitmek üzere olduğunu gördüp değiştirmemiz gerekebilirdi.
– Diski değiştirmemizi gerektiren farklı durumlar olabilirdi.

Bu durumlarda disk sistemde görünmeye devam edecek ve MDRAID hata vermeyecektir.

Böyle bir durumda yapılması gereken, öncelikle ilgili diski fail olarak işaretlemektir;(Örnek olarak sdl1 diskini alalım)

[codesyntax lang=”bash”]
mdadm –manage /dev/md0 –fail /dev/sdl1
[/codesyntax]

Şimdi görüntü şu şekilde olmalı;
[codesyntax lang=”bash”]
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sdk1[0] sdl1[2](F)
24418688 blocks [2/1] [U_]

md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]

unused devices:
[/codesyntax]

Şimdi diskimizi silebiliriz;

[codesyntax lang=”bash”]
mdadm –manage /dev/md0 –remove /dev/sdl1
[/codesyntax]

Ve şu andan itibaren ilk başta anlattığımız konuyu uygulayabilirsiniz.

Esen kalın,
Fikri DAL

Eski ZFS’yi Güncelledikten sonra Alınan Hatalar

Eğer ZFS versiyonunuz bir hayli geri kalmışsa son versiyona yükselttiğinizde poolunuzu göremeyebilirsiniz.

root@fd1:~# zfs list
no datasets available
root@fd1:~# zpool import
zpool: ../../lib/libzfs/libzfs_import.c:356: Assertion `nvlist_lookup_uint64(zhp->zpool_config, ZPOOL_CONFIG_POOL_GUID, &theguid) == 0' failed.
Aborted (core dumped)

Çözümü çok kolay,

Debian türevleri için;

apt-get update
apt-get upgrade

İşin özünde zfs gücellenirken bir kaç paketinin güncellenmemiş olması yatar;

Reading state information... Done
The following packages have been kept back:
landscape-common linux-headers-generic-lts-saucy linux-image-generic-lts-saucy
The following packages will be upgraded:
libnvpair1 libuutil1 libzpool2 zfsutils
4 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
Need to get 824 kB of archives.
After this operation, 306 kB disk space will be freed.
Do you want to continue [Y/n]?
<

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…

Nginx wildcard subdomain

Fantezi bu ya diyelim ki bir nginx serverınız var ve sürekli yeni subdomainler ekliyorsunuz veya her müşterinize subdomain veriyorsunuz ancak her seferinde nginx reload etmekle uğraşmak istemiyorsanız aşağıdaki gibi bir config fazlasıyla işinizi görecektir.


server {
listen 80;
server_name ~^(.*)\.fikridal\.com$ ;
access_log /var/log/nginx/$1.access.log main;
root /var/www/$1;

}

Yukarıdaki örnekte *.fikridal.com şeklinde tüm istekler karşılanacaktır.

Burada dikkat edilmesi gereken tek husus subdomain kısmı ile bir root directory oluşturulmuş olmalıdır.. Geri kalan kısımları nginx sizin için halledecektir, örneğin çalışıyor olmasına rağmen ilk istek geldiğinde log dosyasını da oluşturacaktır. Tabi dns kısmını hatırlatmakta fayda var, wildcard opsiyonu ile bir konfigürasyon kullanacaksanız öncelikle dns tanımlamasının yapılmış olması gerekemektedir.

Örneği genişletebiliriz, Nginx biraz hayal dünyanızla ilgilidir;

 

server {
listen 80;
server_name ~^(.*)\.fikridal\.com$ ;
access_log /home/$1/log/access.log main;
root /home/$1/www;

}

Türksat Kablonet Vasat Hizmet Vermeye Devam Edecektir!

Merhaba,

Bugün sizlere elimden geldiğinde neden Kablonet/Uydunet kullanmamanız gerektiğini anlatmaya çalışacağım. Bu sadece Kablonet/Uydunet için geçerli olmayıp müşterilerine bu şekilde davranan tüm kurumlar için geçerlidir. Büyük oldukları için müşteriyi ezme, aşağılama, umursamama hakkını kendinde gören bu kurumların hizmetlerini almaya devam ederek onları cesaretlendirmeye devam etmeyeceğim. Türksat Kablonet Vasat Hizmet Vermeye Devam Edecektir! yazısına devam et

Linux, Performans, Güvenlik ve Sistem Yöneticisi

Özet

Aşağıda okuyacağınız bilgileri herhangi bir kitapta bulamazsınız, herhangi bir yerde doğru veya yanlış olduğuna dair teyit edecek net bir kaynakla karşılaşamazsınız. Bunlar yıllar içinde edindiğim tecrübelerin basit bir şekilde yazıya dökülmüş ham halleridir. Burada yazılanları uygulayıp/uygulamamak tamamen sizin inisiyatifinizdedir.

Bir sunucudan yüksek performans sağlamasını istemek sıradan bir beklentidir. Ancak bu beklentimizi sağlaması için sunucuyu yeterince optimize ediyor muyuz? Benzer şekilde “Linux nasılsa güvenli” diye düşünerek sunucuyu savunmasız bırakmanın yüksek ihtimalle karşılacağımız felaketlere davetiye çıkartmak olduğunun bilincinde miyiz?.

Bu yazımda da komutlardan ziyade mantıksal konular üzerinde durup performans arttırımı ve güvenlik için bir bilinç oluşturmaya çalışacağım. Sunucudan verebileceği tam performansı veya ona yakın olasılıkları almak için neler yapmalıyız kısaca bunlara değineceğim. Linux, Performans, Güvenlik ve Sistem Yöneticisi yazısına devam et

GlusterFS Hata : volume create: {volumename} : failed: {path} is already part of a volume

GlusterFS üzerinde nadiren karşılaştığım bir problem var, bu problem genellikle bir volume oluştururken karşıma çıkıyor ve ilgili path daha önce bir volume tarafından kullanıldıysa veya volume oluştururken bir şekilde hata döndüyse, sorunu düzeltmenize rağmen başlıktakine benzer bir hata almanız muhtemeldir.

Çözüm için aşağıdaki komutları uygulamanız yeterli olacaktır;

($brick_path’i kendi pathiniz ile değiştirin)

setfattr -x trusted.glusterfs.volume-id $brick_path
setfattr -x trusted.gfid $brick_path
rm -rf $brick_path/.glusterfs