Locust – Açık Kaynak Kod Load Test Uygulaması

Locust, web uygulamaları üzerinde detaylı olarak stress test yapabilmeye olanak sağlayan açık kaynak kodlu çok güzel bir yazılım. Temel olarak yük testinin yapılacağı web uygulaması için hangi sayfalarda kaç kişinin gezeceğini, hangi sayfalardan hangi sayfalara geçileceği, toplam dolaşım süresinin ne olacağı vs. gibi detaylı senaryonuzu bir python scripti şeklinde tarif edip, locust’a bu senaryoyu simule etmesini söylüyorsunuz.

Aşağıdaki gibi güzel ve anlaşılır bir web arabirimi olan Locust aynı anda milyonlarca anlık ziyaretiçiyi belirlediğiniz eşik değerlerine göre web uygulamanıza dolduruyor ve arayüz üzerinden uygulamanızın kullanıcı isteklerine verdiği cevapların stabilitesini ölçüp sınırlarınızı tespit edebiliyorsunuz.

 


Devamini okuyun: Locust – Açık Kaynak Kod Load Test Uygulaması


Cagri Ersen tarafından Syslogs adresinde yayınlandı. | Permalink | Etiketler: ,

28 Şubat 2015

Posted In: *nix, Genel, kurulum, Qmail, tools

Etiketler:,

Gemalto – İstihbaratcılar İzin Almadan İstediklerini Dinleyebilecek

ABD istihbarat örgütü NSA ve ingiliz gizli istihbaratının (GCHQ) ortaklaşa yaptığı operasyonda, Dünyanın en büyük sim kart üreticisi Gemalto hacklendi. Gemalto senede 2 milyar sim kartı üreten ve dünya çapında 450 tane GSM sağlayıcına sim kartı satan firma. Bunların içinde Turkcell, Avea ve Vodafone’un olup olmadığına iddiaya girelim mi? 🙂 Peki Turkcell, Avea ve Vodafone’un […]

27 Şubat 2015

Posted In: linux

Yenilemek için fazla dokunmayacağım

Yazılarda, sunumlarda, -özellikle- tezlerde, konferans ve hatta televizyonlarda son onbeş yıldır duymaktan sıkıldığımız başlangıç cümlesini yani  “Küreselleşen dünyada…” demeden değişen dünya ile ilgili bir yazıya başlayabilmek çok önem verdiğim şeylerden biri. Naçizane önerim; lütfen siz de bu iki kelime ile başlamayın.

İnternet çok büyük bir devrim, çok basit bir ilkeye dayanmasına rağmen gerçekten tarihteki en başarılı ve en büyük devrim diyebiliriz. 90’lı yıllardaki ilk hali ile de büyük bir devrimdi, şimdiki dinamik haliyle ise çok büyük bir devrim. Dünyada bugüne kadar bu kadar insanı birbirine birçok yönden bağlayabilen eşsiz bir proje. Basit olarak, karşılıklı kelimeler, ses ve görsel veriler iletilmesinden çok ötede bir şeyi başarıyor, insanlar birbirlerini etkileyebiliyor. Birbirlerini etkileyen insanlar ise çok değişiyor ve farklı bir şekilde başka insanları etkilemeye başlıyor. Tarif etmesi güç ama lise biyoloji derslerinde genetiğin temelini hatırlarsak, melezlenme ile yeni bezelye türlerin oluşması gibi, düşünce sistemleri de melezlenerek yeni düşünceler ve bunların yayılmasıyla oluşan daha doğrusu örülen kolektif bir beyinin paydaşı haline geliyoruz.

Düşünceler, algılama hatta duyguların internet ağı üzerinden adeta füzyon reaksiyonu gibi ortaklaştığını kolayca görüyoruz, tanık oluyoruz. İyi yönde bir gelişme olduğu şüphesiz. Kötü yönde bir eğilim üzerinde neler olabileceğini ise düşünmek dahi istemiyorum, dev bir karşılıklı ortak nefret dünyayı yok olma savaşına bile götürebilir…

Bir şeyin içindeyseniz değiştiğini çok olay farkedemezsiniz. Teknolojiyi de topluma göre biraz önden takip ediyorsanız -ki bir blog okuyucusu olmak bence bunun için yeterli bir göstergedir- her yeniliğin dünyayı değiştireceğini düşünüp sabırsızlanmış ve değişime şahitlik etmek için beklemişsinizdir diye tahmin ediyorum. Fakat değişimin gerçekleştiğini ancak başka birinin ağzından ‘Artık xxx değişti’ lafını duyduğunuz zaman anlarsınız, ki bu onay ispatı aynı zamanda sizin şahitlik sürenizi de bir anda siler götürür, birden bu gerçekle karşılaşmış gibi olursunuz…

İşte bu değişimin daha doğrusu içinde bulunduğumuz devrimin çok da büyük bir maliyeti var: ‘Bağlı olma zorunluluğu’-bağımlılığı nasıl tanımlarsanız tanımlayın, özü şudur günlük hayatınızda internetin yeri artık sabittir, erişme ve erişilebilme alışkanlığınız haline gelmiştir. Bağımlılıktan öte bir durum olduğunu düşünüyoum, organik bir bağ hissi, bağlı olma hissi, beslenme refleksi gibi…

İnternet bağımlılığı, sosyal medya bağımlılığı gibi genel adlarla zaten bu durumu tartışmış, konuşmuşsunuzdur… Ama ben durumun biraz daha farklı ve derin olduğunu düşünüyorum. Bu yazıda da duruma bu ciddiyeti kattığını düşündüğüm şeyi yazmak istedim: AKIŞ (stream)…

Algı olarak doğrusal bir çizgide gidiyoruz. Kolayı da bu, bir zaman sırasında tane tane akan bilgiler… Karmaşayı sevmiyoruz, zaman sırasına dizilmiş her çeşit bilgiyi karıştırmadan almak gerçekten çok kolay… Sosyal medyada bilgilir akışla geliyor, zaman çizginizde hakimiyet sizde, okuduğunuz internet gazetesi haberi size akışla veriyor… Sürekli olduğunuz haber sitesine bakın, neden ana haberleri numaralandırılmış, neden yukarıdan aşağıya doğru önem sırası değil de zaman sırasına göre sıralanmış haberler var? Kolayı bu da o yüzden. Kolay olduğu için takip etmeyi başarıyoruz ve başarabildiğimiz bu eylem zevk veriyor, bağlanıyoruz. Sözlük siteleri bile akışın ağırlıklı bir takip kipi içerisinde, aradığınız terim neyse dilerseniz ararsınız… Örnekleri fazla verip konuyu boğmaya gerek yok, günümüzdeki çoğu internet sitesi bir akış üzerine kurulmuş.

Bağlı olmak aslında internetten beslenir halde olmak gibi, ne yediğiniz size kalmış, süper bilgilerle de beslenebilirsiniz, süper saçma bilgilerle de. Elbette internet dünayadaki bütün bilginin kaynağı değil (en azından şimdilik), fiziki çevremiz ve yaşamanın ta kendisi bilginin diğer kaynakları. Dengesiz beslenme gibi dengesiz bir bilgi beslenmesi de sorunlara yol açıyor, obezite gibi düşünelim. Dengesizce internetten beslenir hale gelmemiz, doysak dahi daha fazlasını arama haliyle bizi akışımızın başına geçiriyor ve yenilemek için ya tıklıyoruz ya da sürükleyip bırakıyoruz… Nasıl bir ruh hali ise az sayıda gelen güncelleme, yeni bir habere denk gelememek, gelen kutumuzda yeni bir posta olmaması bizi mutsuz etmekte. Oysa o zaman dilimi içerisinde nasıl bir beklentideyiz… Dev internet ağı ve sınırsız içerik akışından bizim nasibimize az düşmesi açken yoksul sofrasında olmak gibi bir his veriyor. Ne kadar çok yenilersek o kadar az ile karşılaşıp daha mutsuz oluyoruz. Tabi akışla beslenmek gibi etkileşme ihtiyacı da aynı şekilde, insani ve sosyal bir ihtiyaçmışçasına internet üzerindeki ağımızdaki kişişelerle etkileşmeyi bir ihtiyaçmış gibi görüyoruz. Çoğumuz aile ve yakın arakdaşlarımızla fiziki platformda daha az etkileşiyoruzdur…

Bir akıllı telefon sahibinin ortalama 9 dakikada bir telefonunu kontrol ettiğini okuduğumda kendime üzüldüm. Hayatın akışındayken bir işin ortasında veya sohbet ederken birden zorunlulukmuş gibi telefona ya da bilgisayar ekranına dönmek… Ne kötü ama ne çok yapıyorum… Altını çizmek isterim, üzüldüğüm şey ekrana uzun süre bakmak değil, dönüp bağı kontrol etmek…

Ne yapalım, yolda, durakta beklerken nasıl geçsin zaman diyebiliriz… O metrobüsün içinde 4-5″lik bir dünya kapısını açmayalım mı? Açalım tabi ama mümkünse başı-sonu olan bir şey olsun ekranın öte tarafında, akışın periyodunu mümkünse biz belirleyelim. Ha bire yenilemeyelim, yeni haber var mı diye aynı siteleri her saat turlamayalım. Mümkünse okumadaki boşluklara doğru ileleyelim… E-kitap olur, daha sonra okumak için sakladığınız yazıları Pocked – Read it Later (Daha sonra oku) Feedly vb uygulamalara yüklenelim.

Geçtiğimiz iki ayı yolculukta Kindle ile kitap okuyarak geçirdim. Son on günde yolculuk süremi düşünmem gereken bazı konulara ayırdım bu nedenle kitap okumaya ara verdim. O konuları düşünemediğim gibi, beş dakika bakayım derken yolculukta 38 kere akış yenilediğimi farkedince ne kadar sıkıcı bir şeyin içine kendimi ittiğimi gördüm.Akışlar yoğunlaştıkça birbirini tekrar eden ve akışlardaki kişilerin de birbirini tekrar eden halle gelmesi gerçekten faydasız ve sıkıcı… Azı karar çoğu zarar…

 Bu yüzden artık yenilemek için ikidebir dokunmayacağım. Önemli bir haber – olay varsa zaten bildirimi gelir, çevrendekiler bahseder. Hem bugüne kadar hep haberleri herkesten önce takip ettim de ne oldu, cemiyet ortamında -aa şu olmuş denildiğinde yaşanan ortak heyecanı yaşamadım, ben onu çoktan öğrenip şaşkınlığımı tüketmiştim, çevremle o anda paylaşabildiğim tek şey törpülediğim küstahlığımla söylediğim -evet okudum ben onu- evet duydum…

Kendime sınır koymayı sevmiyorum, uymayınca benim kendime olan saygımın öz-benliğimce ezilmesini kendime yediremiyorum. Fakat (bu kelime ile cümleye başlanılamayacağı iddia ediliyor) günde üç kere toplu ve hızlı şekilde bu akışlara göz atmamın kafi olacağını ve bunu uygulamayı düşünüyorum. Sabah gazetesi, akşam postası gibi, bir de öğle benden olsun…

Spam engelleyici doğrulamalarındaki ‘Stop spam, read books (Spam yapmayı bırak, kitap oku)‘ sözünü ilk duyduğumdan bu yana çok seviyorum, ve her zaman kaybıyla ilgili konuda bu lafın türevlerini kafamda çeviriyorum, bu konuda da ‘Yenilemeyi bırak, kitap oku (Stop refreshing, read books)‘ diyerek kendimi motive edeyim.

Akış dedim, durgunluk ve dinginlikle bitireyim.

Sapanca Gölü Kenarında

Sapanca Gölü Kenarında – (1920 x1280 boyutlu duvar kağıdı halini indirmek için resme tıklayın – JPG – 538 KB) Ekran boyutunuza göre dilediğiniz ölçüde küçültüp/kırpıp kullanabilirsiniz)

Mutlu günler.

Bu yazı 1.000 kelime ve 7.395 karakter içeriyormuş, çok değil hani… Satır boşluksuz 2 adet A4. Ne kadar okudum/zaman kaybım oldu diye merak ediyorsanız işinize yarar 🙂

Sonrası Yenilemek için fazla dokunmayacağım Günlüğüm ilk ortaya çıktı.

20 Şubat 2015

Posted In: akış, bağlı olma sendormu, Fikir, Genel, Gezegen, haber bağımlılığı, internet, internet bağımlılığı, lkd, oi, sapanca gölü, sosyal medya bağımlılığı, yenilemek

Akademik Bilişim 2015

    Bu sene 17. si düzenlenen bu etkinliğe ikinci katılışımdı. Etkinlik Eskişehir Anadolu Üniversitesinin ev sahipliğinde gerçekleşti. Bu sene bu etkinliğe bakış açımı değiştiren bir sene oldu. Çünkü önümüzdeki sene olacak akademik bilişim için hazırlıkların daha bu seneki akademik bilişim başlamadan başladığına şahit oldum. Ve bu büyük etkinlik çok az insanın devamlı desteğiyle ayakta duruyor. Etkinlik katılımcı-eğitmen sayısı olarak giderek büyüyor. Ölçek büyüdüğünde aklınıza hiç gelmeyecek küçücük bir şey bile büyük bir soruna dönüşebiliyor. Yaklaşık 1500 kişi kurslara kayıt olurken, yaka kartlarını alırken, kalacağımız yerlerde, prizleri kullanırken, internete bağlanırken, yemek yerken, sunumları dinlerken bir sorun yaşamadık. Ama sorun yaşamamamız için çok insan hiçbir maddi karşılık almadan uykusuz kaldı, çalıştı, emek harcadı. O gönüllüler ordusuna bir kez daha saygılarımı iletiyorum.

    İlk gün kayıt için normal olarak bir miktar koşuşturma vardı. Çünkü kursiyerlerin hepsi aynı anda kayıt masasına gelmişti. Sonra kursiyerler sınıflarına yerleşti ve kurslar başladı. Ortalık sakinleşti. Biz Necdet hocamla etkinlik boyunca tek tek sınıfları gezdik, herşeyin yolunda olup olmadığını kontrol ettik. 35 kurs 40 tan fazla sınıf vardı. Bu gerçekten yorucuydu ama yaşadığım en tatlı yorgunluktu :) Akgül hocanın yanımızda olamadığı zamanlarda Necdet hoca bir eli telefonda herşeyin yolunda olduğunu anlatıyordu :) Ama Akgül hoca da ne durumda olursa olsun sürekli çalışıyordu. Sunucular kuruyor sayfa sayfa mailler yazıyordu. Bunları yazarken etkinliğe bir kez daha uzaktan bakma fırsatı buluyorum ve nasıl büyük bir çaba ve fedakarlıkla devam ettiğini bir kez daha anlıyorum.

    Ders aralarında kursiyerle tanışıp etkinlik hakkındaki izlenimlerini öğrendik. Bizim gördüğümüz herkes etkinlikten memnundu. Memnun olmadıkları bir yer varsa söylemeleri için Necdet hoca ne kadar üstlerine gitse de  :) olumsuz bir  dönüş olmadı. Bu mutluluk verici.

    Günün sonunda eğitmenler ayrı yorgun kursiyerler ayrı yorgun oluyordu. Kolay birşey değil tabi. Sabah 9 dan akşam 6 ya kadar bir konu hakkında konuşmakta dinlemekte zor birşey.

    Bir de şahit olduğum bir olayı anlatacağım size. Sanırım bizim sınıfları gezip insanlarla konuşmamızı biraz kıskanmış olan biri -sanırım bir eğitmendi- hızlıca bi yere gidiyordu. Necdet hocanın yanından geçerken hocam en rahatı senin işin vallaha dedi ve gitti :) Aslında biraz da o kısmı vurgulamak istiyorum bu yazımda. Kötü niyetle demedi biliyorum ama keşke hiç demeseydi. O bir haftanın güzel geçmesi için çok öncesinden nasıl bir çalışma yapıldığını anlatacağım. Gördüğüm kadarını tabi. Her gün saatlerce telefon görüşmesi yapılıyor. Fiziksel sorunlar çıkıyor (elektrik tesisatının o kadar bilgisayar için uygun olmadığı gibi...) Bunlar çözülmeye çalışılıyor. Hakemler yapılacak olan bildiri seminer kurs ve panellerin gözden geçirme işini yapıyor. Hakem başına çok sayıda kontrol etmesi gereken başvuru düşebiliyor. Bunların düzeltilmesi gereken yerler başvuru yapanlara geri bildiriliyor. Düzeltmeler yapılınca tekrar gözden geçiriliyor. Bir karara varılana kadar bu böyle süregeliyor.  Kurslar belli olduktan sonra kurs başvuruları başlıyor. Başvurular bittikten sonra başvuranlar içinden kimlerin seçileceği konusu başlıyor. Her eğitmen kendi kursu için buna karar veriyor ama mail listesi sorun yaşayanların sorunlarıyla doluyor taşıyor. Mail listesine ya da organizatörlere yaşadıkları ve kendi çözebilcekleri şeyler için bile mail atanlar oluyor. Bunları takip etmek ve yapılan yanlışlara sabır gösterip kalp kırmadan bu işleri çözmek işte o etkinlilk günü en rahatı da sizsiniz dediğiniz adamların çok uzun süre yaptığı iş. Ve daha anlatmayı atladığım bir dünya şey var.

     Sonunda kurslar bitti katılımcılara katılım belgeleri dağıtıldı. Akgül hoca aramıza katıldı :)

    Ertesi gün benim içinde bulunduğum iki konuşma vardı. Biri panel biri bildiriydi. Bu ilk konuşmam olmamasına rağmen hep ilk günkü heyecanı yaşıyorum böyle zamanlarda :) Bi takım mide kelebeklenmeleri falan :)

    Akgül hoca açılış konuşmasını yaptı ve seminerler başladı. Daha öce 16 kez bu konuşmayı yapmış olan Akgül hocanın bile yeniden hazırlanmak için 4 saatini harcadığını gördükten sonra ne kadar hazırlansa yetersiz geliyor insana :) Ben 1 saat öncesinden panelin olacağı salondaydım. Sunumu projektörü kontrol ettim herşey yolundaydı. Kızlar geldi hazırlıklarımızı tamamladık. Ve dünden bugüne kadın yazılımcı ve toplumdaki yeri isimli panelimiz başladı.
                             

    Bir buçuk saat çok gelecek diye düşünürken yetmedi bile. Ama anlatmak istediğimizi dinleyicilere aktardığımızı düşünüyorum. Olumlu geri dönüşler aldık :)

    Arkasından yaz stajımda yaptığım süpervisor için merkezi yönetim arayüzü CESI yi sundum :)



    Benden sonra Necdet hocam yazılımları nasıl lisanslamalıyız adlı sunumunu yaptı. Bir yazılımı lisanslarken vermemiz gereken 4 ana karar olduğunu ve lisansın buna göre biçimleneceğini anlattı. Ve bu dört yol ayrımından mantıklı bi şekilde döndüğümüzde kendimizi özgür yazılım lisansları arasında bulduk. :) Bu sunumun insanların aklında çok ışık yaktığını düşünüyorum. Doğru bilinen yanlışlar,  masum görünen ahlaksızlıklar insanların gözleri önüne daha apaçık nasıl dökülebilir bilmiyorum.

    Etkinlik günlerinin her anından kendime ayrı bir ders çıkardım. Bana çok katkısı olan bu büyük etkinliği düzenlemede emeği geçen herkese tek tek  saygılarımı sunarım.

    Bu anlattıklarım etkinlik saatleriydi tabi... Bunların dışında Eskişehir de çok güzel zaman geçirdik. Tandığım o kadar çok insan vardı ki kendimi hiç yabancı hissetmedim Eskişehire. Her akşam başka güzel geçti. Bir gün dışarı çıktığımızda cadde üzerinde ilerlerken tanıdıklara rastlaya rastlaya 25 kişiye yakın bi topluluk olarak porsuk çayının yanında yürüdük :) Harika bir duygu...


    Bir takım güzel sebeplerden son iki güne kalamadım ama aklım Eskişehirdeydi :) Bir hafta en fazla bu kadar güzel geçebilirdi herhalde :) Önümüzdeki yıl aynı konulu blog yazısını yazmak için sabırsızlanıyorum. :)


10 Şubat 2015

Posted In: ab2015, akademikbilişim, eskişehir, Gezegen, kadınyazılımcı, Özgür yazılım, ozguryazilim

Zfsonlinux Kurulumu ve Yapılandırması

Zfs, yüksek ölçeklenebilirliğe uyumlu, aşağıdaki kriterleri dikkate alarak dizayn edilmiş dosya sistemi ve mantıksal hacim yöneticidir.

  • Veri bütünlüğü
  • Basit depolama yönetimi
  • Her şeyi online olarak yapabilmesi

Bsd sistemlerde default olarak gelen zfs dosya sistemini, zfsonlinux kurarak linux sistemlerde de kullanma imkanı bulabiliyoruz.

Zfsonlinux Kurulumu

Redhat tabanlı işletim sistemi için zfsonlinux download sayfasından 6 ve 7 dağıtımları için gerekli rpm repolarını indirebilirsiniz. Bu yazıda Centos 6 için kurulum yapılacaktır.

# rpm -ivh https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm
# yum install kernel-devel zfs

# reboot

Sunucuyu yeniden başlattıktan sonra aşağıdaki şekilde hata almanızın sebebi  kernel, kernel-headers ve kernel-devel versiyonlarının uyuşmamasından kaynaklanıyor olabilir. Kernel’i güncellemeniz problemi çözecektir.

# zfs list
Failed to load ZFS module stack.
Load the module manually by running 'insmod <location>/zfs.ko' as root.

[root@localhost ~]# rpm -qa |grep kernel
kernel-firmware-2.6.32-504.el6.noarch
dracut-kernel-004-356.el6.noarch
kernel-2.6.32-504.el6.x86_64
kernel-devel-2.6.32-504.8.1.el6.x86_64
kernel-headers-2.6.32-504.8.1.el6.x86_64

Zfs Pool Oluşturulması

Zfs kurulumu yapılan sunucuda 2 disk mevcut, 2. disk zfs olarak yapılandırılıp, tank0 olarak zfs pool oluşturacağız. 2.diski sisteme mount etmediğimden dolayı “df ” çıktısında görünmüyor. Eğer önceden ext4 olarak formatlayıp mount ettiğiniz bir diski kullancak iseniz ilk önce umount edip, “/etc/fstab” dosyasından diskin mount edildiği satırın başına “#” koymanız yada satırı silmeniz gerekiyor. Bu sayede zfs diski legacy olarak fstab üzerinden sisteme sorunsuz mount edebiliriz.

# zpool create tank0 /dev/sdb 
# zfs list 
NAME    USED  AVAIL  REFER  MOUNTPOINT
tank0   108K  19.6G    30K  /tank0

tank0 poolunun yanında aynı disk üzerinde birden fazla poollar da oluşturabilirsiniz.

# zfs create -o mountpoint=/home/zfs1 tank0/zfs1

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank0        156K  19.6G    30K  /tank0
tank0/zfs1    30K  19.6G    30K  /home/zfs1

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  961M  8.6G  10% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             477M   49M  403M  11% /boot
tank0                  20G  128K   20G   1% /tank0
tank0/zfs1             20G  128K   20G   1% /home/zfs1

Poolları legacy olarak oluşturmadığımız için sunucuyu resetlemeniz durumunda zfs poolları sunucunun açılışında oluşturulamayacak ve ” df ” çıktısında görünmeyecektir.

# zfs list
NAME         USED  AVAIL  REFER  MOUNTPOINT
tank0        158K  19.6G    30K  /tank0
tank0/zfs1    30K  19.6G    30K  /home/zfs1

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  961M  8.6G  10% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             477M   49M  403M  11% /boot

Bu sebeble aşağıdaki şekilde zfs poollarını mointpoint olarak legacy ayarlayıp, sunucunun açılışı sırasında fstab ayarlarına göre mount olmasını sağlıyoruz.

# zfs set mountpoint=legacy tank0

# zfs get mountpoint tank0
NAME   PROPERTY    VALUE       SOURCE
tank0  mountpoint  legacy      local

# zfs set mountpoint=legacy tank0/zfs1

# zfs get mountpoint tank0/zfs1
NAME        PROPERTY    VALUE       SOURCE
tank0/zfs1  mountpoint  legacy      local

fstab dosyasına aşağıdaki satırları ekliyoruz.

tank0                   /tank0                  zfs     defaults        0 0
tank0/zfs1              /home/zfs1              zfs     defaults        0 0

Artık poolları mount edebiliriz.

# mount -a

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  961M  8.6G  10% /
tmpfs                 499M     0  499M   0% /dev/shm
/dev/sda1             477M   49M  403M  11% /boot
tank0/zfs1             20G     0   20G   0% /home/zfs1
tank0                  20G     0   20G   0% /tank0

Zfs komutunun ayrıntılarını linkte bulabilirsiniz.

Performans Ayarları

Sunucularda performans amacı ile kullandığım birkaç zfs ayarlarından bahsedecek olursak,

  • Çok fazla i/o yapan bir sunucuda zfs compression özelliğini aktif ederek i/o sorununu azaltabilirsiniz.

# zfs get compression
NAME        PROPERTY     VALUE     SOURCE
tank0       compression  off       default
tank0/zfs1  compression  off       default

# zfs set compression=on tank0
# zfs set compression=on tank0/zfs1

# zfs get compression
NAME        PROPERTY     VALUE     SOURCE
tank0       compression  on        local
tank0/zfs1  compression  on        local

  • recordsize değerini değiştirebilirsiniz.

# zfs set recordsize=128K tank0
# zfs set recordsize=128K tank0/zfs1
 
# zfs get recordsize
NAME        PROPERTY    VALUE    SOURCE
tank0       recordsize  128K     default
tank0/zfs1  recordsize  128K     default

 

10 Şubat 2015

Posted In: *nix, lkd-gezegen, zfs, zfs kurulumu, zfs pool, zfs yapılandırması, zfsonlinux, zpool

Sqoop quoted column/table names

When you use Apache Sqoop if a column name of an RDBMS table (in my case Postgresql) needs to be quoted, use [escape_char] is \

sqoop import … –table your_tablename –columns “[escape_char]”[escape_char]“your_columnname[escape_char]”[escape_char]“”

Same usage can use for table name or other things.

10 Şubat 2015

Posted In: postgresql, quoted names, rdbms, sqoop

Reverting Changes From Remote Git Repo

If you want to revert multiple changes So the solution is to create a new commit which reverts changes that you want to get rid of.

A <– B <– C <– D

$ git revert --no-commit D$ git revert --no-commit C
$ git revert --no-commit B
$ git commit -m'the commit message'

9 Şubat 2015

Posted In: commit, git, github, revert

Uyap Döküman Editörünün linux sistemlerde çalıştırılması. (UDF Editör)

Bilindiği üzere Adalet Bakanlığı ve Milli Eğitim Bakanlığı (ve belkide benim bilmediğim bazı diğer kurumlar) döküman editörü olarak "udf editör" adı altında bir yazılım kullanmakta. Bu editörle elektronik imzalama işlemlerini de gerçekleştirmekteler. Yazılım java da yazılmış olduğundan platform bağımsız çalışır hissi verse de, son kullanıcılar için hazırlanmış bir linux kurulum yönergesi veya paketi bulunmuyor.(En azından ben bulamadım).

Bir ubuntu kullanıcısı olarak sistemim de uyap döküman editörünü çalıştırmak için önce uyap.gov.tr den windows kurulum dosyasını indirip wine ile çalıştırdım. /home/username/.wine/drive_c/ altına uyap adında bi dizin oluşturup dosyaları buraya atmıştı. Baktığımda ise bir bat dosyası da bu java dosyalarını tetikliyordu. Bunun için ben de bi sh dosyası oluşturup bu jar dosyalarını çalıştırması için gerekli değişiklikleri yapmam yeterli oldu. Zaten deb dosyasının içini bir arşiv yöneticisi ile açarsanız yaptığım değişiklikleri görebilirsiniz.

Buraya kadar olan kısım kendi isteklerine göre dağıtımlarına uyap editörü kurmak isteyenler içindi. Bundan sonrası için ise; ubuntu kullanıcıları için hazırladığım deb dosyasını direk indirip kurabilirler. Bu deb i komut satırından indirdiğiniz dizinde sudo dpkg -i uyapeditor.deb komutu ile kurabilirsiniz. Dash da ise Uyap Editor yazdığınızda başlangıç simgesini göreceksiniz. Komut satırında ise uyap komutu ile açılıyor.


Ubuntu 14.04.1 LTS olan sistemimde denedim sorunsuz çalıştı. Olur da çalışmazsa haberleşelim :)

Deb Kurulum Dosyası


Not: Bu arada github dan baktığımda editörün paketi PisiLinux depolarında görünüyor. PisiLinux Geliştiricilerini de buradan selamlıyorum :) Harikasınız.

4 Şubat 2015

Posted In: Dys, linux, MEB, Program Tanıtımı, Uyap Editör

Linux Kernel Ekibiyle Staj

Geçtiğimiz yaz haziran sonunda mezun oldum. Mezuniyetten sonra bir işe girip çalışmak, her gün işe gidip gelmek, birkaç ay işim dışında bir şeye bakmamak, sonrasında iş temposuyla birlikte neler yapabileceğime karar vermek gibi bir düşüncem vardı. Ancak tabi ki böyle olmadı :).

Ağustos başında Google İrlanda ofisinden iş görüşmesi için e-posta aldım, benim ile başlangıç bir telefon görüşmesi yapmak istediklerini söylediler. Hemen kabul ettim. İlk üç aşamayı geçtim, son görüşme için Irlanda'ya gittim ancak son görüşmede başarılı olamadım. Sorular beklediğim gibi değildi, internetten çalıştığım gibi de değildi.

Ben evde son görüşmeye hazırlanırken Gnome OPW için başvurular da başlamıştı. Ben daha önce ilk Gnome'un araçlarına sonra da Linux Kernel'a başvurmuştum. Gnome'a katkı verirken katkı vermek için masaüstü bilgisayarınızda ortam oluşturmak zor. En son Fedora 19'un alfa sürümünü kullanmak zorunda kalmam ve alfanın hiç kullanışlı olmaması üzerine katkı vermeyi sonlandırdım :). Aslında jhubild'de kullanabiliriz ama onda ortamı hazırlaması .. bana bir tane geliştiricisi o zamanlar Fedora beta sürümü varken, beta kullanmamı önermişti, beta yine kullanılabilirdi ancak bir sonraki sürüme geçtiklerinde alfa kullanmak zorunda kalmam pek iyi olmadı. Bir de Gnome Continuous var, onu yeni gördüm ama henüz denemedim.

Linux Kernel'a katkı verdiğim sene aslında alınmayı beklemiştim gerçekten ama olmadı. Bu dönem başvuru süresi 2 ay gibi uzundu :), geçen sene 3 hafta gibi bir süreydi. Necdet hoca "Aslında sen başvursan çok şey yaparsın" dedi, ben de başvurdum ve alındım :). Alınmayı gerçekten beklemiyordum ve çok güzel bir sürpriz oldu.

Şimdi Rik van Riel ile birlikte bellek yönetimi üzerinde çalışıyorum. Bellek yönetimi katkı vermeye başlamanın en zor olduğu kısımlardan biri, çünkü çekirdeğin temel fonksiyonlarını içeriyor ve daha karmaşık. Başvurduğunuz projeye göre staj sürecinde ne kadar yama gönderebileceğinizin sayısı da değişiyor. Ben projem zor olduğundan, 4 ayda otuz satır yazabilir miyim derken şimdiden bir yamayı kabul ettiler bile :).

Linux kaynak kodunda bellek yönetimi ile ilgili dizin mm/. Eğer güncel mm dizinini takip etmek istiyorsak da Linus Torvalds'ın kullandığı dalı değil de linux-next'i takip etmek gerekiyor. Yamaları Andrew Morton kabul ediyor ve günlük olarak etiketliyor. Güncel linux-next'i nasıl takip edeceğinizi görmek için buraya bakabilirsiniz.

Anladığım kadarıyla, Linux'ta bellek yönetimi üzerine çoğunlukla Redhat ekibi bakıyor, çünkü birçok sunumu ve belgeyi o ekip hazırlamış. Ben yamaları gönderirken mm dizini bakıcılarına baktığımda genelde @redhat.com alan adlı hesaplar var. Yamaları vger.kernel.org ve  akpm@linux-foundation.org listelerine gönderdiğim için de çok mutluyum. O kadar büyük listelerdeki insanların kodlara bakıyor olması oldukça heyecanlı :).

Üzerinde çalıştığım proje ise, bellek üzerinde 2kB/4kB kadar boyutlarda olabilen sayfaların dışında bir de büyük sayfalar (huge page) var. Onların boyutları ise 2MB/4MB. Peki neden büyük sayfalara ihtiyaç duyuyoruz? Çünkü sayfalar büyük olduğunda sayfa tabloları da büyük oluyor ve bir süreç için verileri bellekten atma/belleğe getirme miktarı azalıyor. Eğer sayfalar 4MB'tan büyük olursa verimsiz oluyor.

Sistemin swap kullanması gerektiğinde büyük sayfalar normal boyutlu sayfalara parçalanıyor (2kB/4kB) ve o şekilde swap alanına yerleştiriliyor. Sorun şu ki; swap alanından belleğe tekrar geri getirilmek istendiğinde büyük sayfa olarak değil, normal boyutlu sayfalar olarak getiriliyorlar bu durumda eski verim sağlanamıyor, aynı zamanda burada izlenmesi gereken bir algoritmaya da karar verilmeli. Çünkü bir süreç swap kullanıyor diyelim, ve swapte olan bir veriye ihtiyaç duyuldu, sadece tek bir verinin bulunduğu sayfa 2kB, ancak bunun yerine 2MB büyük sayfa getirmek her zaman yararlı olmaz. Burada karar verilmesi gereken noktalar var.

Geçtiğimiz dönem kod ve belge okumak üzerine geçti. Bir tane de yama gönderdim. Sadece okunabilir sayfaları büyük sayfalar şeklinde birleştirmek için. Yamayı burada görebilirsiniz.

Bundan sonraki bir süre ise; "daha önce hiç okuma/yazma isteği almamış, henüz fiziksel belleğe eşlenmemiş, sadece sanalda bulunan, bir süre sonra ilk kez okuma izni aldığında fiziksel belleğe eşlenen sayfalar" var, bunlara zero page deniliyor, bunlar üzerinde çalışacağım. Eğer sayfa içerisinde veri yoksa, ilk okuma isteği aldığında çekirdek bunu sıfırlarla dolu bir sayfa olarak üretiyor. Bunları da büyük sayfalara dahil etmek üzere çalışacağım. Aynı zamanda (emin değilim), Documentation dizininde de belgelendirme yapmam gerekecek. Muhtemelen birkaç işim daha var ancak henüz ben bilmiyorum, danışmanımla işleri bitirdikçe yenisini alma şeklinde ilerliyoruz. Henüz başlamadığımız işlerden de şuna bir ara bakarız şeklinde konuşuyoruz.

Staj sürecinde birkaç Türkçe yazı daha yazacağım (yazmadı) :).

1 Şubat 2015

Posted In: bellek yönetimi, collapse huge page, Gezegen, huge page, kernel, linux, staj, swap, yama, zero page

Twitter Auto Publish Powered By : XYZScripts.com