Hızlı, Güçlü ve Ucuz: Küçük işletme veritabanı için yeterli performansa sahip, 1000 ABD dolarının altında sunucu
(c) Alexey Kovyazin, IBSurgeon, 21 Eylül 2017 (son güncelleme - 29 Eylül 2017)
Çok para harcamaya hazırsanız güçlü bir sunucu almak kolaydır: Dell, HP gibi önde gelen satıcılar ve daha az bilinen birçok donanım şirketi var, size güçlü bir makine satmaktan mutluluk duyacaklardır (genellikle 4-6 hafta içinde teslimatla).
Ancak, para her zaman bir sorundur, özellikle küçük işletmeler ve yeni kurulan şirketler için, bu nedenle «yeterince iyi» ucuz çözümlere büyük bir talep vardır. Bu makale, küçük işletmeler için yeterli performansa sahip «yeterince iyi» bir veritabanı sunucusu kurmanın pratik yaklaşımını açıklamaktadır. Ayrıca hesaplamalar ve önerdiğimiz belirli ürünlere bağlantılar içerir.
Şirketimiz ( IBSurgeon) Firebird veritabanları için veritabanı danışmanlık ve bakım hizmetleri sağlar ve birçok sunucu türü (veya daha doğrusu sunucu olarak kullanılan bilgisayarlar) görürüz. Büyük müşteriler SSD üzerinde SAN, 350+Gb RAM ve çift üst düzey Xeon içeren üst düzey yapılandırmalar kullanır, ancak küçük ve orta ölçekli işletme müşterileri daha az güçlü makineler kullanır çünkü fazla bilgi işlem gücüne ihtiyaç duymazlar ve çok paraları yoktur.
Birçok sunucunun aslında normal iş istasyonları olduğunu ve en ilginç olanın, yıllarca oldukça istikrarlı çalıştıklarını fark ettik. 2Gb RAM’li bir bilgisayarda Windows XP gibi gerçekten egzotik şeyler var (bilgisayar 2002’de üretilmiş!), ancak çoğunluğu sadece «yeterince iyi» kendi kendine kurulmuş donanım çözümleridir.
Elbette, bu bir istatistik meselesidir ve hiç kimse bir iş istasyonunu sunucu olarak kullanmayı önermez, ancak soru şudur: istikrar ve harcamalar arasındaki denge nerede? Ucuz kendi yapımı bir sunucu kullanmak para-değer açısından iyi bir yaklaşım mı? USD$1000 için ne alabiliriz? Pahalı olmayan donanımla ilgili riskler nelerdir?
USD$1000 altında bir veritabanı sunucusu kimin ilgisini çekebilir?
Şu durumu ele alalım: 20-25 çalışanı olan bir ofis, insanlar 7x5 çalışıyor, veritabanı boyutu yaklaşık 50Gb. Bu, Firebird tabanlı küçük işletme uygulamaları için bazı ERP veya CRM veya belirli bir uygulama (örneğin, diş kliniği otomasyon sistemi) kullanan küçük bir işletme şirketi için tipik bir durumdur.
Şirketin para içinde yüzmediğini ve güvenilirliği kaybetmeden mümkün olduğunca tasarruf etmek istediklerini, yeterince iyi performans elde etmek istediklerini hayal edelim. Şirketteki sorumlu kişi tüm donanımların er ya da geç arızalanacağını anlar ve ilgili riskleri azaltmak ister.
Bu boyut ve yükteki Firebird veritabanı için ne tür bir sunucuya ihtiyaçları var? Firebird Donanım Rehberi’ne göre, veritabanı için en kritik kaynak disk G/Ç’sidir, ardından RAM ve en son CPU gelir (ilginçtir ki, KOBİ müşterileri büyük satıcılardan sunucu satın aldıklarında, genellikle güçlü CPU’ları ve yavaş diskleri olan sunucuları seçerler, muhtemelen CPU’nun önemini abartan pazarlama materyalleri nedeniyle).
Diskler
Hızlı G/Ç, katı hal sürücülerine (SSD) ihtiyacımız olduğu anlamına gelir çünkü SSD rastgele okuma ve yazmaların kralıdır. Elbette, SSD veritabanları için her derde deva değildir, ancak gerçekten yüksek performans sağlar ve şimdi veritabanları için doğru seçimdir.
SSD iki çeşittir - kurumsal sınıf ve tüketici sınıfı diskler. Aralarındaki temel fark, kabaca gerçekleştirebilecekleri G/Ç işlemi sayısı olarak hesaplanan bir kaynaktır.
Örneğin, Samsung 850 Pro 256 Gb MZ-7KE256BW - tüketici sınıfı SSD (MLC teknolojisine dayalı), TBW (toplam yazılan bayt) 150 Petabayt ve DWPD (Günlük Disk Yazma) = 0.16’dır. Veya daha basitçe, kaynak 10 yıl boyunca her gün 40Gb yazma olarak açıklanabilir.
Güncelleme: Samsung PM863a ($181.59) veya SM863a ($249) sürücülerinin 850 Pro’dan daha güvenilir olduğu ancak yine de uygun fiyatlı olduğu önerisi geldi - esasen, ekstra $60 için daha iyi stabilite ve bir tür elektrik dalgalanmalarına karşı koruma alabiliriz.
Bu çok mu yoksa az mı? Tüketici sınıfı SSD’li bir test sunucumuz var ve 60 Gb veritabanında 100 bağlantının yoğun çalışmasını simüle etmek için yük testleri çalıştırıyoruz. Her gün 3’er saatlik 3 test başlatılıyor - bu testlerin 9 saatlik bir iş gününü simüle ettiği anlamına gelir. Testler 2 yıldır çalışıyor ve kalan kaynak (donanım yazılımına göre) %54’tür.
Elbette, ~%50 kaynak, sürücünün önümüzdeki yıl içinde değiştirilmesi gerektiği anlamına gelir… Bu çok mu kötü? Her birkaç yılda bir SSD hızı artar ve fiyatlar düşer: örnekteki SSD 6Gb/s hızındadır ve $137’ye mal olur, 2-3 yıl içinde aynı fiyata 12G sürücüler olacaktır.
Amazon fiyatı USD$124’ten itibaren
Kurumsal sınıf SSD’ler başka bir teknoloji (SLC) temelinde üretilir ve aynı boyuttaki tüketici sınıfı SSD’den yaklaşık 30 kat daha fazla işlem gerçekleştirebilir. Ayrıca, tüketici sınıfı SSD’lerden yaklaşık 3 kat daha pahalıdırlar. Soru şu: küçük işletme sunucusu için 3 kat fiyata gerçekten 30 kat daha fazla G/Ç turuna ihtiyacımız var mı?
Hızlı ve uygun fiyatlı bir çözüm arıyorsak, ucuz tüketici sınıfı SSD’ler kullanmak ve bunları düzenli olarak değiştirmek (ve elbette donanım yazılımıyla kaynağını izlemek) çok caziptir.
SSD ile ilgili riskler
Yeterli insanlar olarak, tüketici sınıfı donanımın daha az kaynağı olduğunu ve arızalanma olasılığının yüksek olduğunu anlıyoruz, bu yüzden bu olasılıkları azaltmamız gerekiyor. Nasıl azaltabiliriz?
Ani donanım arızası olasılığını azaltmak için, veritabanı için RAID1’de birleştirilmiş 2 SSD kullanmak gereklidir. RAID1, ayrı bir RAID denetleyicisine ihtiyacımız olduğu anlamına gelmez, modern anakart yonga setlerinin RAID özelliklerini kullanmak yeterli olacaktır - esasen, önbelleksiz basit bir RAID denetleyicisi vardır.
Güncelleme: Anakarttaki ucuz RAID denetleyicileri SSD’lerin TRIM özelliğini destekleyemediğinden, performans düşüşünü önlemek için yazılım düzeyinde eşzamanlı işlemleri düzenleyen yazılım RAID kurulması önerilir.
Önbellek olmazsa performans ne olacak? Örnekteki Samsung gibi modern SSD’ler yerleşik önbelleğe ve çok akıllı denetleyicilere sahiptir - bu yüzden özel RAID denetleyicileri olmadan yeterince hızlıdırlar.
Elbette, disk sağlığını kontrol etmek gereklidir; genellikle donanım yazılımı disklerin ömrü hakkında yeterince iyi bir tahmin sağlar.
Yedeklemeler
Elbette, yedeklemeler için sürücülere ihtiyacımız var. En iyi seçim, her biri 2Tb olan bir çift SATA sürücü olacaktır - örneğin, Seagate SkyHawk 2TB Surveillance Hard Drive, 5900 rpm.
Amazon fiyatı $74,99
2 HDD’ye ihtiyacımız var çünkü yedekleme sürücüleri de ani donanım arızasından korunmak için RAID1’e konulmalıdır. Bu yedekleme sürücüleri oldukça yavaş olabilir, asıl amaçları yedekleri saklamak ve yeterli sıralı okuma/yazma hızı sağlamaktır. 5900 rpm sürücüler 7200 rpm’den daha yavaştır, ancak daha güvenilir oldukları bilinir. Bu özel sürücü serisi (Seagate SkyHawk) doğrusal yazmalar için tasarlanmıştır: yedeklemeler için ihtiyacımız olan şey budur.
Yedekleme sürücüleri için riskler
Risk SSD ile aynıdır ve aynı şekilde korunuruz: RAID1 ve izleme. RAID1’deki her iki sürücünün aynı anda arızalanma olasılığı çok düşük olmalıdır.
Sistem sürücüsü
İşletim sistemi için ayrı bir sürücüye ihtiyacımız var mı? En ucuz yapılandırmada - hayır, işletim sistemini ve veritabanını aynı sürücüde tutmak yeterli olacaktır. Bu, SSD’nin bozulmasını biraz hızlandıracaktır, ancak çok fazla değil - senaryomuzda kesinlikle 3 yıl dayanmalıdır.
CPU
Firebird veritabanı sunucusu için mümkün olduğunca düşük frekanslı ve çok çekirdekli bir CPU seçmek daha iyidir. Evet, doğru okudunuz - bir veritabanı sunucusu için yüksek frekanslı CPU’lara gerek yoktur. Firebird (doğru yapılandırılmışsa) normal çalışma için tüm çekirdekleri kullanır, ancak bunları %100 oranında yüklemez.
İstisnalar vardır: yüksek hızlı CPU’dan yararlanan bazı bakım işlemleri (yedekleme ve geri yükleme) ve indekslerin yanlış kullanımıyla kötü yazılmış SQL sorguları - bunlar çekirdeğin %100’ünü tüketir, ancak bu, veritabanı performans optimizasyonunun gerekli olduğunun açık bir işaretidir. Genel olarak, yavaş sorguları üst düzey CPU’larla telafi etmek mümkün değildir: CPU 3 kat daha hızlı olsa bile, yavaş sorgu yine de yavaş olacaktır.
Öte yandan, birkaç çekirdeğe sahip olmak, bu tür CPU tüketen sorguların varlığını telafi edebilir: 25’ten az kullanıcı ve 8 çekirdekle, tüm çekirdeklerin aynı anda yavaş sorgular tarafından işgal edilme olasılığı çok yüksek değildir.
Ve ucuz bir çözüm aradığımız için masaüstü CPU’larla sınırlıyız - ve üzülerek söylüyorum, AMD çipleriyle. Esasen, Intel AMD FX-8320E ile aynı fiyata veya biraz daha yüksek bir fiyata 8 çekirdekli masaüstü işlemci sağlayabilseydi, Intel’i de kullanabilirdik, ancak şu anda böyle bir seçenek görmüyorum.
Bu AMD çipi çok modern ve çok hızlı değil, ancak 8 çekirdeğe sahip ve ucuz, bu yüzden hızlı ve ucuz sunucumuz için en uygun seçimdir.
Amazon fiyatı USD$108
Masaüstü CPU ile ilgili riskler
CPU ile ilgili potansiyel risk nedir? Yeterli soğutucuya sahip düşük frekanslı (yani hız aşırtılmamış) çipler için neredeyse hiç risk yoktur. Masaüstü CPU’nun arızalandığını en son ne zaman duydunuz - 2003’te mi? Elbette, sunucu CPU’ları çok daha hızlıdır, ancak yeterince iyi bir çözüm arıyoruz.
Ara sıra yeniden başlatmaları önlemek için CPU yükünü ve sıcaklığını izlemek iyi bir fikirdir.
RAM
Gerekli RAM miktarı veritabanı boyutuna ve kullanıcı sayısına bağlıdır. Senaryomuzda veritabanı boyutu 50Gb ve maksimum 30 kullanıcımız var.
Firebird’ün tüketebileceği maksimum boyut veritabanı boyutudur (bu durumda tamamen RAM’de önbelleğe alınır) artı kullanıcı başına 200-300Mb (Firebird 2.5 SuperClassic durumunda). Yani, ideal maksimum RAM boyutu 64Gb’dir, ancak tasarruf etmek istediğimiz ve hızlı SSD’miz olduğu için 16Gb kadar az kullanabiliriz.
Bu senaryodaki bazı kullanıcılar 8Gb ile bile iyi çalışır, ancak 8Gb oldukça dardır: bu durumda aynı sunucuda başka hiçbir uygulama kullanılmamalıdır. 16Gb önerilen minimum optimumdur.
Amazon fiyatı USD$59.99 x 2 = $120
RAM ile ilgili riskler
RAM arızalara CPU’lardan daha duyarlıdır ancak disklerden daha azdır. Kurumsal sınıf RAM, eşlik kontrolleri gibi hata olasılığını azaltmak için özel mekanizmalara sahiptir. Bellek arızası riskini nasıl tahmin edebilir ve azaltabiliriz?
İlk olarak, bellek çiplerini kontrol etme yöntemleri vardır ve bu testler başarıyla geçilirse RAM çipleri yıllarca çalışacaktır. İkinci olarak, RAM arızalandığında genellikle çok belirgindir: bilgisayar ya ölümün mavi ekranını ya da çekirdek paniğini gösterir veya sık sık yeniden başlar: tüm bu belirtiler kontrol gerektirir ve kötü sonuçlar durumunda RAM’in değiştirilmesini gerektirir.
Anakart
Anakart her bilgisayarın önemli bir parçasıdır. Neyse ki, modern masaüstü anakartları çok güvenilirdir, özellikle 4-5 yıl önce piyasaya sürülen anakartlar - gerekli tüm güncellemelere sahiptirler ve stabildirler. Ve - evet, ucuzdurlar.
RAID desteği, yerleşik video çipi ve yeterli SATA bağlantı noktası olan bir anakarta ihtiyacımız var. Şunun gibi bir şey:
ASUS M5A78L-M Plus/USB3 DDR3 HDMI DVI USB 3.0 760G MicroATX Anakart
Amazon fiyatı USD$74,99
Çok olumlu yorumlara sahiptir ve RAID1 yapılandırmak kolaydır.
Masaüstü kasa
Tüm bilgisayar bileşenlerini bir araya getirmek için yeterli güç kaynağına sahip bir masaüstü kasaya ihtiyacımız var. Şunun gibi bir şey: $76,82 http://amzn.to/2ydeYs1
UPS
Sunucunun bir parçası olmayan ancak içinde önemli veriler olan her bilgisayarla donatılması gereken tek şey - kesintisiz güç kaynağı (UPS).
UPS, bilgisayarı elektrik kesintilerinden ve dalgalanmalarından korur. Deneyimlerimize göre, güç dalgalanması veya bilgisayarın anormal güç kaybı, veritabanı bozulmalarının önde gelen kaynağıdır.
CyberPower CP1200AVR gibi bir şey, $117.97 için yeterince iyi olmalıdır.
Toplam
Sonuç olarak, tüm bilgisayar bileşenlerinin ve UPS’in toplam fiyatı = USD 855,27 - bu 1000 USD’den bile daha az, ancak bu bileşenler çalışan bir bilgisayara dönüşmeden önce monte edilmeli, işletim sistemi kurulmalı ve test edilmelidir.
| Ürün | Fiyat | Adet | Toplam |
|---|---|---|---|
| SSD Samsung 850 Pro 256 Gb MZ-7KE256BW | $124,24 | 2 | 248,48 |
| Seagate SkyHawk 2TB Surveillance Hard Drive | 74,99 | 2 | 149,98 |
| CPU AMD FX-8320E | $86,02 | 1 | 86,02 |
| RAM Corsair Vengeance 8GB | $61,99 | 2 | 123,98 |
| Anakart ASUS M5A78L-M Plus | $57 | 1 | 57 |
| Masaüstü Kasa | $69,99 | 1 | 69,99 |
| CyberPower CP1200AVR | $119.82 | 1 | 119,82 |
| Toplam | 855,27 |
Sunucuyu monte etme
Tüm bu parçaları çalışan bir sunucu haline getirmek ve oraya işletim sistemi kurmak için (CentOS7+ veya Ubuntu Server 16+ gibi bir Linux çeşidini öneririz), tüm bu bileşenlerin monte edilmesi/doğru şekilde bağlanması gerekir.
Bu zor değildir, sadece bir tornavida, biraz sabır ve talimatları dikkatlice okumak ile bazı YouTube videoları izlemek için zaman gerektirir. 10 yıl önce neredeyse her geliştirici bu parçalardan bir bilgisayar monte edebilirdi, bugünlerde durum farklı, ancak yine de zor değil.
Peki ya sunucuyu monte etmek istemiyorsanız?
Bir kısayol var - ihtiyaçlarımıza neredeyse uyan benzer bir yapılandırmaya sahip bir bilgisayar satın almak ve oraya ek bileşenler (yani diskler) takmak mümkündür.
Bu bilgisayara bakmanızı öneririm - aslında oyun PC’si olarak tasarlanmış, 8 çekirdekli CPU ve 16GB RAM’e sahip ve yalnızca USD$709 tutarındadır.
Bir çift SSD sürücü (+$248,48), bir yedek sürücü daha (+$74,99) ve tabii ki UPS (+119.82) ile donatmak (kasayı açıp takmak) gerekli olacaktır. Toplam USD 1153 olacaktır - bu 1000$ hedefinden daha yüksektir, çoğunlukla ekran kartı ve güzel masaüstü kasası nedeniyle. Yine de RAID1’i (BIOS’ta) yapılandırmanız ve tabii ki önceden kurulu Windows 10 Home yerine oraya sunucu işletim sistemi kurmanız gerekir.
Bu yaklaşım, güçlü bir masaüstü bilgisayarı sunucuya dönüştürmek için kullanılabilir - yedekli SSD’ler ve yedek sürücüler eklemeniz yeterlidir.
Geçmişte birçok KOBİ ve startup bu tür kendi kendine kurulan sunucuları kullandı, şimdi bulut tabanlı sanal makineleri kullanma eğilimi var.
Sanal makineler kendi kendine kurulan bir sunucuyla nasıl karşılaştırılır?
Elbette, kendi sunucunuzu kurmak ve bakımını yapmak bazı beceriler gerektirir (göründüğü kadar yüksek değil), bu yüzden birçok şirket tüm donanım sunucularından kurtulmak istiyor (ve muhtemelen sunuculardan sorumlu sistem yöneticisini işten çıkarmak).
Bir sonraki makalede, KOBİ’ler için veritabanı sunucusu olarak buluttaki VM’yi ele alacağız.
Firebird veritabanı performansı hakkında daha fazla makale:
- Firebird Donanım Rehberi
- 1.7Tb Firebird veritabanını ayarlama
- Firebird Performans Optimizasyon Hizmeti
- Firebird veritabanını hızlandırmanın 45 Yolu
- Optimize edilmiş Firebird yapılandırma dosyaları koleksiyonu
Bize ulaşın
Lütfen her türlü soruyu sormaktan çekinmeyin: [email protected].
Teşekkürler
Bu makale için öneri ve iyileştirmeler gönderen kişilere çok teşekkürler:
- Vlad Khorsun
- Dmitri Kuzmenko
- Pavel Zotov
- Sergey Nikitin
- Emil Mustea