Sysbench ile Raspberry Pi’ın Başarımını Ölçmek

Sysbench Linux’un donanımsal ve yazılımsal başarımını birçok yönden ölçebilecek bir başarım sınama aracıdır. Aracı düzenli kullanarak SD kart, USB flaş bellek gibi çevre birimlerinin başarımlarını karşılaştırmak için kullanabilirsiniz. Sysbench, CPU, bellek, dosya I/O ve mutex başarımını ölçebilecek özelliklere sahiptir.

Sysbench programının sonuçlarını sağlıklı karşılaştırabilmek için headless (Grafik masaüstü olmadan) ve en az sayıda arka plan servisinin çalıştığı bir sistemin kullanılması önemlidir. Aksi takdirde sınanan başarıma, hâlihazırda yürütülen aygıt işlemleri ve programlar da etki edecektir.

Sysbench’i kurmak için apt aracını kullanabilirsiniz:

Takip eden başlıklarda her bir başarım sınamasının nasıl gerçekleştirilebileceği ile ilgili örnekler yer almaktadır. Bu örneklerde kullanılan sınama seçenekleri hakkında daha fazla seçeneğe ait daha detaylı bilgi her zaman man komutu ile öğrenilebilir.

Sysbench ile dosya sistemi başarımını sınamak

Sysbench programının fileio argümanı ile dosya sisteminin, dolayısı ile SD kartınızın başarımını ölçebilirsiniz. Bu başarımın sınanması işlemi 3 adımda gerçekleştirilir;

  1. Hazırlık,
  2. Sınama,
  3. Temizlik

İlk adımda, sınamanın gerçekleştirilebileceği, istenilen boyutta geçici disk dosyaları oluşturulur ve son adımda bu dosyalar diskten temizlenir. Sınama sıralı okuma/yazma, rastgele okuma/yazma ve bunların karmaşık bileşimleri şeklinde gerçekleştirilebilir. Sınanacak disk ortamı üzerinde geçici dosyaların oluşturulacağı ilk adımda; dosya boyutu olarak mevcut bellek miktarından daha büyük bir değer verilmesi, işletim sistemi tarafından disk ön-belleği olarak kullanılan bellek alanının işlevini en aza indirecektir. Ne kadar büyük bir dosya boyutu belirtilirse işletim sistemi tarafından RAM’de oluşturulan disk ön-belleğinin fonksiyonu azalacak ve sysbench’in daha doğru bir disk başarım sınaması yapmasını sağlayacaktır. İlk adıma ait aşağıdaki komut ile; fileio sınaması yapımak üzere, disk üzerinde 128GB boyutunda geçici dosyaların oluşturulması sağlanmıştır.

Sınamanın ikinci aşamasında ise 4GB’lık disk dosyası üzerinde rastlantısal erişim (rndrw) yöntemi ile 300 saniye boyunca okuma yazma işlemi gerçekleştirilmesi sağlanmıştır.

test seçeneği ile başarım sınamasının dosya sistemi temel alınarak yapılması, file-total-size ile sınamanın hazırlanan 4GB’lık dosya kümesi üzerinde yapılması, file-test-mode ile raslantısal erişim yöntemi kullanılarak okuma/yazma yapılması, max-time ile toplam sınamanın azami 120 saniye sürmesi, max-requests seçeneğine verilen 0 değeri ile belirtilen süre içinde sınırsız sayıda okuma/yazma işleminin yapılabileceği belirtilmiştir. max-requests’e verilecek istek sayısı 0 olduğunda sınırsız sayıda okuma/yazma yapılacağı kabul edilir. Aşağıdaki örnek sınama çıktısını inceleyelim:

sysbench’in sınama çıktısında yer alan değerlerin doğru okunması, yani doğru yorumlanması en önemli konudur. Farklı diskleri veya işletim sistemi konfigürasyonlarını karşılaştırmak için değerlerin büyüklüklerini not almak ve bir puana ulaşmak daha kolaydır. Diğer taraftan aynı sistem ve SD kart üzerinde farklı zamanlarda yapılacak başarım sınamaları söz konusu olduğunda; değerlerin her birinin ne anlama geldiğini bilmek olası başarım kayıplarının nedenlerini yorumlamak açısından ayrı bir önem taşır.

Yukarıdaki sınama çıktısında 135MB’lık veri 8640 adımda okumuş, toplam 90MB’lık veri de 5760 parça halinde diske yazılmıştır. Toplam okuma yazma ortalaması saniyede 1.8732Mb ve saniyede 119.89 okuma/yazma isteği ile gerçekleştirilebilmiştir. per-request statistics bloğudaki sonuçlarda ise istek başına istatistikler sunulmuştur. Buna göre en düşük sürede gerçekleştirilen istek 0.02ms (milisaniye), tüm isteklerin (14400) içinde; bir isteğin ortalaması ise 2.8ms olarak gerçekleşmiştir.

Bu örnekte; disk üzerinde raslantısal konumlarda (rndrw) okuma ve yazma işlemi yapılmıştır. Aynı sınama, sırasal (seqwr) yani bir disk konumunu takip eden komşu sektörlerin okunması şeklinde yapılsaydı daha yüksek bir başarım değeri elde edilirdi (her okuma işleminde, rastgele konumlara erişim sağlama gerekmediği için) . file-test-mode seçeneğinde belirtilebilecek diğer sınama yöntemleri şunlardır:  seqwr: sıralı yazma, seqrewr: sıralı yeniden yazma, seqrd: sıralı okuma, rndrd: Rastlantısal okuma, rndwr: rastlantısal okuma yazma, random write: rastlantısal yazma.

Son adımda, sınama için oluşturulan dosya kümesinin diskten silinmesi işlemi yer alır. Aşağıdaki gibi cleanup seçeneği ile bulunulan dizinde oluşturulan sınama dosyalarını güvenli şekilde silebilirsiniz.

Sysbench ile CPU başarımını sınamak

sysbench’i kullanarak CPU başarımını aşağıdaki komut ile sınayabilirsiniz. Sınamanın vereceği sonuçların sağlıklı yorumlanabilmesi için o anda sistemde çalışan diğer işlemlerin neler oldukları bilinmelidir. Sınama sırsında yüksek oranda işlem gücü harcayan bir program başarım sonuçlarının düşük çıkmasına neden olur.

Yukarıdaki CPU başarım sınamasında belirtilen seçenekler ve anlamları şunlardır: test seçeneği ile CPU başarım sınaması gerçekleştirileceği, CPU-max-prime ile başarım sınamasında azami 20000’e kadar olan asal sayıların hesaplanacağı, sınamanın azami 60 saniye süreceği ve num-threads ile sınamanın 4 ayrı kanaldan gerçekleştirileceği belirtilmiştir. 4 çekirdekli bir CPU’nuz varsa kanal sayısı olarak 4 seçmek uygundur. Başarım sınamasının sonuçları aşağıdaki gibidir:

Komutun çıktısında yer alan per-request statistics değerleri CPU karşılaştırması için uygun değerleri sunmaktadır. Buna göre mevcut CPU gücü ile, her bir asal sayı bulma işlemi ortalama 85.07ms sürmüş, 2823 ayrı alt işlemin CPU sınaması 60.0397 saniyede tamamlanabilmiştir. Stddev alanı ile belirtilen değerler hesaplanan ortalamanın standart sapmasıdır (Standart derivation). Standart sapma ne kadar küçük ise,  her bir iş birbirine veya ortalamaya (85.07ms) o kadar yakın sürede tanımlanmıştır.

Sysbench ile RAM başarımını sınamak

Bir sistemin başarımını belirleyen en önemli ikinci unsur ise RAM’dir (CPU’dan sonra). Gün geçtikçe daha yüksek hız ve kapasitelerde ve daha düşük erişim sürelerine sahip RAM’ler üretilmektedir. RAM’ler genellikle okuma hızı yazma hızından daha yüksek olacak şekilde üretilmektedir. Genel olarak bir bilgisayar sisteminde okuma işlemi yazmaya göre daha çok yapılır; bu nedenle okuma başarımı yazma başarımına göre daha kıymetli bir ölçüt sunar. Aşağıdaki komut ile RAM başarım sınaması yapılmıştır.

Komutun seçeneklerine değinmek gerekirse; memory-blockseçeneği ile okuma işlemi 1KB’lık bloklar halinde gerçekleştirilmiş, sınama için 1GB’lık bellek alanı kullanılmış ve memory-oper seçeneği ile belleğin sadece okuma başarımı sınanmıştır. memory-oper seçeneğinin alabileceği değerler şunlardır: read, write. Sınamanın raporu aşağıdaki gibidir:

Raporun çıktısında, başarıma esas değerler şöyle oluşmutur:1024MB’lık veri toplam 2.0350 saniyede 363.91MB/sn hızında okumuş, en uzun okuma süresi 0.13ms olarak gerçekleşmiştir. RAM sınaması yapılırken mevcut fiziksel RAM miktarının üzerinde bir değer kullanmak RAM okuma/yazma hatalarını görebilmek için de faydalı olabilir.

memtester ile RAM başarımını sınamak

Raspberry Pi’ın bellek başarımını sınamak için kullanılabilecek başarılı araçlardan diğeri de memtester’dir. memtester bellek ve bellek alt sistemi donanımlarındaki hataları bulmak için stres sınaması uygular. Programı kurmak için aşağıdaki komutu kullanabilirsiniz:

memtester’in tarayabileği RAM miktarı sistemde bulunan toplam RAM’den daha azıdır. İşletim sistemi ve bellekte yerleşik (kullanımda olan) kütüphaneler, mevcut RAM’in tamamına erişilmesini engeller. Bu nedenle memtester ile mevcut RAM’in tamamı üzerinde yapılan sınamalar, memtester tarafından mümkün olan en büyük RAM miktarı için yeniden denenir. Mevcut RAM’den fazlası sınanmaya çalışıldığında sistem kilitlenebilir veya memtester programı Linux  çekirdeğinin bir koruma mekanizması olarak; fazla bellek tükettiği için sonlandırılabilir. memtester’ı aşağıdaki gibi çalıştırarak kullanabilirsiniz:

Yukarıdaki memtester sınamasında belleğin 800M’lık kısmı memtestertarafından ayrılmak istenmiş (want) ve tamamı (got) sınama için başarıyla tahsis edilmiştir. memtester bellek hücreleri üzerinde mantıksal bit işlemleri yaparak birçok sınama gerçekleştirmiş, hem bellek hücrelerini hem de bellek kontrolcüsünü yoğun şekilde çalıştırmıştır. Böylece Raspberry Pi’ın RAM ve bağlı donanımları yoğun şekilde sınamaya tabi olmuştur. Bu işlem sırasında CPU kullanımı ve sıcaklık artacağından, donanım üzerinde fiziksel bir zorlama da gerçekleştirilmiş olur. Son seçenek ise tüm alt sınamaların kaç kez tekrarlanacağının sayısıdır.

Memtester belleğin istenilen bir adresinden başlayarak sınama gerçekleştirmeye izin verir. Bunun için –P adresine taramanın başlayacağı bellek adresini argüman olarak verebilirsiniz.

Yazar: Özgür Koca

Yazar - Tankado.com

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.