Ana içeriğe geç

Lamp Wordpress Yük Testi

Bu test Kali linux üzerinde Jmeter aracılığıyla Ubuntu 18.04 LTS üzerine yapılmıştır

logo78

Ne Yapacağız?

  • Kali linux makinesine jmeter kuracağız
  • Ubuntu 18.04 makinesinde lamp wordpress kuracağız
  • Son olarak jmeter ile lamp wordpress üzerinde yük testi yapacağız
  • Bu sayede ilgili CPU ve Ram miktarlarının ne kadar ziyaretçi alabildiğini göreceğiz

Gereklilikler

  • WMvare İndirin ve kurun
  • Kali linux Kurun
  • Ubuntu 18.04 LTS Kurun

Lamp Wordpress Kurulumu

  • mysql indiriliyor
apt install mysql-server mysql-client
  • Wordpress indiriliyor
wget http://www.wordpress.org/latest.tar.gz 
  • phpmyadmin indiriliyor
apt-get install phpmyadmin
  • Burada direk enter'e basın

enter1

  • Aynı şekilde burada da enter'e basın

enter2

  • Bu ekranda şifre belirlemeniz gerekiyor

enter3

  • Şifrenizi tekrar girin

enter4

  • Wordpress'i arşiv dosyasından çıkaralım
tar xzf latest.tar.gz
  • Wordpress dosyasının taşınması ve gerekli izinlerin verilmesi
rm -r /var/www/html && mv wordpress html && mv html /var/www && chown -R www-data.www-data /var/www/html/ && chmod -R 777 /var/www/html
  • /etc/apache2/apache2.conf dosyasını nano editörü ile açın
nano /etc/apache2/apache2.conf   
  • Aşağıdakini dosyanın en alt kısmına ekleyin
Include /etc/phpmyadmin/apache.conf 
  • ve aşağıdaki adımlarla dosyayı kaydedip çıkın
Ctrl+x > y > Enter
  • MySQL servisine root olarak girelim
  • şifre olarak az önce girdiğiniz şeyi girin
mysql -u root -p
  • Wordpress için bir veritabanı oluşturalım
create database wpdb;
  • Wordpress için bir kullanıcı oluşturup şifresini belirleyelim
create user [email protected] identified by '[email protected]#';
  • Kullanıcıya veritabanı üzerinde tüm yetkileri verelim
grant all on wpdb.* to [email protected];
  • Değişiklikleri kalıcı hale getirelim
flush privileges;
  • Çıkış yapalım
quit
  • Servisi yeniden başlatalım
/etc/init.d/apache2 restart
  • Aşağıdaki komutla IP adresinizi sorgulayın
ifconfig
  • tarayıcınıza girip IP adresinizi yazın
  • aşağıdaki benim IP adresim
192.168.127.154
  • Aşağıdaki ekranla karşılaşacaksınız ve Türkçe dilini seçip devam edin

enter5

  • Bu ekranda direk başlıyalım butonuna tıklayın

enter6

  • Bu ekranda demin mysql de oluşturduğumuz veritabanı adı, kullanıcısı ve şifresini girelim

enter7

  • Kurulumu çalıştır butonuna tıklayın

enter8

  • Burada sitenizin bilgileri yer alıyor giriş bilgilerini az sonra kullanacağız

enter9

  • Kurulum tamam giriş butonuna tıklayın

enter10

  • Giriş ekranından az önce oluşturduğunuz bilgilerle giriş yapın

enter11

  • Sol üst taraftan siteyi görüntüle diyerek siteyi görebilirsiniz

enter12

  • Lamp wordpress kurulumu başarılı

enter13

Jmeter kurulumu

  • Jmeter indirelim
wget https://ftp.itu.edu.tr/Mirror/Apache//jmeter/binaries/apache-jmeter-5.3.tgz
  • Jmeteri tgz dosyasından çıkaralım
tar -zxvf apache-jmeter-5.3.tgz
  • Jmeter'i çalıştıralım
cd apache-jmeter-5.3/bin && ./jmeter
  • Jmeter çalışıyor

yes1

Jmeter yapılandırılması

  • Aşağıdaki gifi dikkatlice izleyin ve adımları uygulayın

gif1

  • Sol taraftaki yere tıklarsanız içindekiler açılır
  • Number of Threads (users) Buradaki sayı kullanıcı sayısıdır
  • Ramp-up period (seconds) Buradaki süre ise oluşturduğumuz kullanıcı sayısının kaç saniyede girmesini istediğimizdir
  • Bu örnekte 5 kullanıcı 5 saniyede siteye girsin diyoruz. Yani saniye başına 1 kişi

yes2

  • HTTP olanların hepsini sağ tıklayıp remove(silin) yapın.
  • Kırmızı alan daki hepsinin ismini ayarladığım gibi ayarlayın bu sizin için daha az karmaşık olacaktır

yes10

  • Üst kısımda kişi sayısını belirlemiştik.
  • Burada test edilecek IP adresini veya domain adresini yazıyoruz 1 numara'da.
  • 2 numara'da eğer başka bir sayfanız test edilecek ise oraya yazabilirsiniz (koraykutanoglu.com.tr/yük_araçları) Yük araçları sayfası gibi.

yes11

  • Öncelikle 1 deki response code yi işaretleyin
  • 2 numarada bendeki gibi 200 yazmıyacak "h1 domain h1" gibi birşey yazacak 2 numaradaki gibi orayı seçip 4 numaralı butona basarsanız silinir daha sonra 3 numaraya basıp orada bir alan oluşturun ve onun üzerine çift tıklayarak 200 yazın

yes12

  • Burada da aynı şekilde test edilecek domain veya IP adresini girin

yes13

  • Burada da aynı şekilde 404 olacak şekilde ayarlayın ek olarak equals ve not işaretli olmalıdır
  • Eğer test edilen sayfada 404 durum kodlu bir içerik oluşursa bunu göreceğiz

yes14

Yük Testi

  • Burada yapmanız gereken birşey yok üstteki başlat butonuna basıp sonuçları alt kısımda göreceksiniz

yes15

  • Ek olarak izleme aracı olarak View results in table ekleyebiliriz burada biraz daha detay gösteriliyor

yes16

  • Connect Time Bağlantı süresi (ms)
  • Status Durum başarılı

yes17

  • Değerleri artırıyorum ve 5 saniye içerisinde 30 kişinin girmesini istiyorum

yes18

  • Gördüğünüz gibi bağlantı sürelerimiz uzamaya başladı
  • Yani yük arttıkça makine yetersiz geliyor

yes19

Yük testinin grafiğinin çıkarılması

  • Öncelikle kişi sayıları kısmını seçin

yes51

  • İlgili kısmı seçtikten sonra file üzerinden save test plan as butonuna basın
  • Karşınıza gelen ekranda dosyanın adını test.jmx yapıp bin klasörünün içine save butonu ile kaydedin

yes51

  • Jmeteri kapatın ve terminal ekranını açın (Ctrl + alt + y)

  • Öncelikle root olun

sudo -i
  • apache-jmeter-5.3/bin dizinine gidin
cd apache-jmeter-5.3/bin
  • Raporlar için bir klasör oluşturalım
mkdir results
  • test.jmx az önce kaydettiğimiz dostadır
  • result/sonuc.csv sonuç az önce oluşturduğumuz results altına oluşturulacak
  • results Tüm sonuç dosyalarının yazdırılacağı dosya
  • Bu komutun çıktısı uzun sürebilir çünkü testi tekrar gerçekleştiriyor
./jmeter -n -t test.jmx -l results/sonuc.csv -e -o results
  • result dosyamıza gidiyoruz
cd results
  • içindekileri görelim
ls

yes52

  • GUI Arayüz kullanıyorsanız bir üst dizine gelip dosyaları tmp klasörüne kopyalayın
cd .. && cp results /tmp
  • Dosya yöneticinize giriş yapın ve oradan tmp klasörünüze girin
  • ardından results klasörüne girin
  • Raporlarınıza ulaştınız

gif12

  • Şimdi index.html dosyasını açalım
  • Gördüğünüz gibi genel rapor karşımızda

rapor56

  • Bu raporların detayına sol taraftaki menüden ulaşabilirsiniz

detay65

Ubuntu 18.04 1 CPU 1 GB Ram MAX yük testi

  • 50 kullanıcı anlık olarak sisteme 1 kere girer
  • Program belirlenen 50 kullanıcıyı sisteme anında sokmaya çalışır ama elbetteki bu mümkün değildir anlık 50 kişi sokması için bile belirli bir zaman geçer o yüzden min bağlantı süresi ile max bağlantı süresi arasında fark vardır
Kişi sayısı Süre Sayısı Tekrar sayısı Toplam istek sayısı Min Bağlantı Süresi Max Bağlantı Süresi
50 0 Saniye 1 50 100MS 1000MS
70 0 Saniye 1 70 270MS 1601MS
100 0 Saniye 1 100 207MS 2170MS
200 0 Saniye 1 200 218MS 5181MS
400 0 Saniye 1 400 255MS 11897MS
800 0 Saniye 1 800 1561MS 49476MS
1600 0 Saniye 1 1600 1600MS Çöktü
50 20 Saniye 1 50 22MS 101MS
70 20 Saniye 1 70 20MS 35MS
100 20 Saniye 1 100 20MS 63MS
200 20 Saniye 1 200 20MS 32MS
400 20 Saniye 1 400 21MS 70MS
800 20 Saniye 1 800 19MS 101MS
1600 20 Saniye 1 1600 52MS 110187MS
3200 20 Saniye 1 3200 2344MS Çöktü

Cache eklentisi aktif edilir(WP Fastest Cache)

Kişi sayısı Süre Sayısı Tekrar sayısı Toplam istek sayısı Min Bağlantı Süresi Max Bağlantı Süresi
3200 20 Saniye 1 3200 4MS 1325MS
5000 20 Saniye 1 5000 18MS 34046MS
9000 20 Saniye 1 5000 480MS 7000'den sonra çöktü