Warning: fopen(/homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/gt-cache/tr/_tr_tag_bash) [function.fopen]: failed to open stream: Disk quota exceeded in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1183

Warning: flock() expects parameter 1 to be resource, boolean given in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1184

Warning: fwrite(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1188

Warning: fclose(): supplied argument is not a valid stream resource in /homepages/30/d192847469/htdocs/evilprofessor.co.uk/public_html/wp-content/plugins/global-translator/translator.php on line 1190
Evilprofessor.co.uk »bash

Posts tagged: bash

Sanal ortamlar kullanarak Office Grid - Bölüm 4

By , Cuma 4 Aralık 2009 11:59

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

Yılında part 3 bizim sanal işleme makine oluşturulur ve boşta-zamanlı çalışanlar olmak pencere makineleri kurmak.

En son kod çalıştırma

Kaçınılmaz olarak da işçilerin iş mantığı değişecek oluşturduktan sonra, böcek bulundu olacak, daha hızlı daha verimli kod böylece işçilerin kullanarak veri işleme oturduk bırakarak üretilecek eski kötü kokulu kodu . Peki biz her zaman bizim işleme komut en son ve en iyi sürümü kullandığınızdan emin mi?

Bu yapabileceği bir kaç çok kolay basit yolları vardır, hüner, ancak bu ulaşmada işlem gücü ve ağ trafiğini azaltmak. Çözüm basit ile başlamak ve iterasyon bir çift üzerinde yavaş yavaş artırmak sağlar.

İlk yöntem, sadece işimizi kontrol sunucu (Samba, FTP veya benzeri ile) bağlanmak ve kodunun en son sürümüne yıkmak olacaktır. Henüz çok etkili, ama iş yapacak. Bu biraz geliştirmek, nasıl bir rsync komut dosyası oluşturma ve bunun yerine her zaman kullanma hakkında? Lets Alternatif ne subversion başlangıçta kod kontrol dışarı içine bizim son işlem komut dosyası koyarak ve sonra sadece her çalışma (bizim kod güncelleme hakkında svn update )?

Sonunda biz bu kadar basit görünen bir bash betiği (cron her 10 dakika da denir) ile son olabilir:

  #! / Bin / sh
 eğer ps ax | grep-v grep | grep php > / dev / null
 o zaman
     echo "İş, şu anda çıkış işliyor"
 başka
     echo "İş çalışmıyorsa, şimdi başlatın"
     cd / bir / yol / / çalışma kopyası
     svn update
     php yourJobProcessingScript.php
 fi 

Şimdi her çalışmaya biz kesinlikle son kod çalıştıran emin olabilirsiniz. Biz kod tabanı bir çalışma gerçekleştirmek her zaman güncellenmesi ve sadece ağ üzerinden dosya farkları aktararak ağ trafiğini azaltarak bu garanti ediyoruz.

Benim gösteri kurulum, ben aynen yukarıdaki gibi yaptım. Subversion işimi işleme sunucu üzerinde yüklü ve sadece 'svn update' kullanarak bir 'işçi' şubesinden son kod çekildi. Ben de sonuç dönüş parçası olarak veritabanına döndü benim işleme komut dosyası için bir sürüm numarası etiket eklendi. Bu şekilde benim kod ben kesinlikle en son işlem komut dosyası çalıştıran olduğu işçi şube yani içine bagajımda kopyalanan her zaman güncellenmekte olduğunu görebiliyordu.

En son verileri kullanarak

İşinizi işleme bir noktada sonra veri kaynaklarından yararlanarak yaparsa bu da güncelleştirilmesi için gidiyoruz. Eğer en kısa zamanda işçilerin durma noktasına getiren şey yayınlanmaya başlaması gibi, trafik ile ağ sel gidiyoruz çok seyrek olarak veri kaynakları aramak sürece. Benim çözüm için ben VM ile etrafında veri kaynakları taşımak istiyorum karar verdi.

Orada atlar sen tut! Benim veri kaynakları BÜYÜK ne olur? Peki bu gerçekten biz ne kadar veri konuşurken bir durumdur? Bu, ek bir işleme sunucu satın almak için daha her makinenin içine bir ek daha büyük sabit sürücü yüklemek için daha uygun maliyetli olabilir. Bu bütçe meselesi ve karar vermek için iş kalmıştır. Bu belki veri kaynakları öyle büyüktür ki bu, bunun için çalışan makinelerde bu miktarın veri tutmak için olanaksız. Bu durumda ne yapardınız? Peki biz yerel bir veri sunucusu arama bakmak olabilir, ancak bu ağ ile sorunlara neden olabilir. Bu durumda böyle bir grid sistemi ofis ortamında eklemek için gerçekçi olabilir. Ayrıca sadece her gece ve / veya azaltma veri kaynağı istekleri 20:00 ile 06:00 arasındaki işçi arama örneğin, alternatif çalışan stratejileri içine bakabilirsiniz olabilir.

Yapalım Hareketli veri 100GB bizim veri kaynakları miktarı söylüyorlar. Evet evet bu bir güncelleştirme ağ dolaşmak için veri yeraldığını var. Nasıl biz bu durumda veri son kopyasına sahip olduğundan emin misiniz? Rsync bir olasılık, ama ben şahsen iş işleme sunucu üzerinde son veri kaynağını çalışan ve çoğaltma konusunda master (güzel bir uzun bin log) olarak ayarlayarak gitmek için yol olabilir düşünüyorum:

çoğaltma Veri kaynaklarına iş denetimi sunucu güncelleştirmeleri bir köle olarak işçilerin her ayarlayarak (Eğer büyük bir veri güncelleme gerçekleştirmek ve tüm işçiler tekme sürece yani ağ etkinliği büyük bir artış olmadan işçilere güzel yavaş yavaş olacak kerede). Bu, her işi önce uzun bir duraklama elde edemeyeceğini belirtti rsync fazla avantajı vardır; veritabanı güncellemeleri gibi mysql işleme devam ederken sizin İşçiye daemon sürekli olarak veri güncelleme olacak.

Bu benim gösteri sunucusu kurmak nasıl olduğunu. Çoğaltma kurmak için ben mySQL sitesinde (on kılavuzu takip çoğaltma kurma ) ve 20 dakika içinde ben iş denetimi sunucuları veri kümesi çoğaltarak benim inital işçisi vardı. VM kopyalanan her bir ilave işçi için çoğaltma ayarları ve süreç her zaman çalıştı.

Özet

Makalenin bu bölümde kolay ve ağrısız bir işi yapmak için rsync using veya subverion (SVN) tarafından bugüne ve aynı time. de ağ trafiğini azaltmak için işlem kodu tutmak için ne kadar baktım Biz de nasıl ele sizin işçilerin her birine vurur olanak sağlayarak veri kaynağı bilgilerini güncel tutmak için. Böylece bölgede bizim ofis ızgara sisteminde iş mantığı ve bilgileri takip sağlamak. Orada açıkça bu görevleri yerine getirmek için sayısız alternatif olabilir, ama burada bir çözüm gelmek ne kadar kolay olduğunu göstermek için basit iki örnek vardı olacaktır.

Bir dahaki sefere

Aptly adlı bu dizi, en son bölümünde Bölüm 5 , biz bu sistemi dağıtma ele alacağız. Ben yaratmayı başarmış öğrendim olmuştur ve ne özetlemeye olacak.

Sanal ortamlar kullanarak Office Grid - Bölüm 5

By , Cuma 4 Aralık 2009 11:03

Giriş

Birçok toplu iş veriler, her gün milyonlarca kaydın işlenmesi ve ben birkaç saat hiçbir şey yapmadan her gün oturup tüm makineler hakkında son zamanlarda düşünüyordum çalıştırmak nerede bir şirkette çalışmak. Bizim sistemlerinin işlem gücü desteklemek için bu makineleri kullanabilir olsa iyi olmaz mıydı? Bu makaleler set ben bir ofis istihdam potansiyel yararları bakmak için gidiyorum ızgara sanallaştırılmış ortamlarda kullanarak.

Olarak Bölüm 4 biz elde edilen sonuçlar her zaman en son iş bilgilerini ve mantık ile güncel böylece biz kod ve veri kaynaklarının son sürümü kullanıp sağlamak için araçlarını kullanarak baktı.

Ön Dağıtım

Yaptığın bir şey ve bir şey tek başına var eğer ızgara sistemi dağıtmadan önce bu kriter mevcut sistemi olacak! Eğer numaralar teminatlar kadar bu yedeklemek için yoksa sistem yapacaksın ne kadar ekstra çalışma arkadaşları hakkında söylemek ne olursa olsun bir şey değildir. Bu yüzden,

  • Şu anda kaç kayıt işleyebilir? Günlük? Saat Başına?
  • Ne kadar tipik bir iş dönüp alır?
  • Ne kadar daha fazla kapasite var?

Ek sorular da var:

  • Sizin işleme sunucu (veya işleme sunuculardan biri) bu nasıl yeteneklerinizi etkileyecek aşağı giderse, sakat olacak?
  • Eğer / ızgara sistemi almak için bekliyoruz ne gibi avantajlar umuyorsunuz?
  • Ofisinizde makineleri işler çalıştırabilen var mı?
  • Sizin (veya iş dönüştürülebilir) çalışan bu tarzda wrok mıdır?

Son büyük nokta böyle önemli bir değişikliği üzerinde zaman almaktır. Tekrar yeni bir metodoloji, kriter kullanarak çalışmak için işlem kodu güncelleyin. Muhtemelen, bir sanal makine çalıştırmak için işleme sunucu kurmak, tüm işleme sunucu hemen sonra (nispeten sadece çok güçlü bir) başka bir işçi olacak. Yeni süreç yerleşmek için izin ver.

Dağıtım

Benim önerim ofis hafta içine pop, tüm tesisat ve kurulumu gerçekleştirmek olacaktır. Sadece bir iki haftalık tatil önce bunu yapın ve sonuçları ... belki de değil başa chap böylece diğer yoksul bırakmak ...

Bu gibi bir dağıtım sistemi için yavaş olması gerekmektedir. Bu sistemi kurmak oldukça basit olmasına rağmen, tüm ofis altyapısı (iyi dijital bir) etkileyecektir. Öncelikle, bir anda makinelerin bir çift için çalışan bilgisayarlar bir gün için günlük bazda nasıl performans monitör ağ trafiğini, dışarı rulo. Sen bulgulara tepki olarak iş yapılandırmasını değiştirmek gerekebilir.

Sistem birkaç makineleri (haydi tüm ofis makinelerinin% 10, yani 5 söylüyorlar) izleme ağ trafiği ve ana makine tekrar performance. Sonraki kriter tutmak ile geçtikten sonra, şimdi ilk deneylerimize göre% 33 daha fazla iş işleme yapılmalıdır. Bu yüzden olup olmadığını kontrol edin, veya bu ballpark en az olduğunuzu. Değilse, geçmeden önce ne olup bittiğini araştırmak. Eğer mutlu Tüm ofis makineleri tek tek makine performansı öldürme veya sekteye ağınıza taşlama olmadan çalışan kadar bu döngü tekrarlayın.

Tüm zamanlarda, tüm dağıtımlar yapılır sonra bile, kıyaslama tutun. Tüm işçiler, raporlama ve işlerini işlemek kontrol edin, yeni kod güncellemeleri sisteminizin hızını nasıl etkilediğini kontrol edin. Yavaşça (çok yavaş) ve işçilerine ağdan iyi almak için iş yapılandırma artırmak.

Dur!

Ne zaman çalışan sizin işçileri durdurmak isterseniz? Hepsi orada, yenileyici çalışan ve aç böcekler gibi verileri işlemek için ellerinden geleni çalışıyorlar. Cevap apaçık ortada ancak değer sadece durumda onun ardı ekledi. Sadece bir çıkış (0) ile işleme dosyasını düzenlemek or die () veya diğer bazı tablosunun işleme işi öldürmek için. Biz her zaman herhangi bir koşudan önce en son işlem komut dosyası için güncellemeyi deneyin neden önemli bir neden!

Gösteri Sistemi

Ben teknolojileri ve yöntemleri göstermek için çok küçük bir kılavuz hazırlandı kısa yazılar bu set yazmak için. Ben makaleler, öğreticiler çok okumak, ve kurulum ve neler olup bittiğini izlemek için çeşitli araçlar kullanılır. Hiçbir şekilde dışarı gitti ve trafik ve ne de bir bütün ofis doymuş var ben ev sahibi performansı nasıl etkilendiğini şöyle görmek için düzenli bir personelin bilgisayara erişimi vardı.

Benim gösteri sistemi gerçekten çok mütevazi idi. Ben bir iş denetimi sunucusu olarak kurmak benim normal masaüstü kullanılır. Bu konuda ben yüklü olan MySQL sunucusu çoğaltma konusunda master olarak ayarlanmış yüklü PHP ile bağlantılı, Â ve SVN apache (işçi VM üzerinden erişim için).

Daha sonra 6 yaşındaki bir windows XP dizüstü VirtualBox bir CentOS işçinin makine yarattı. Ben makine üzerine VM kopyaladıktan sonra belirtilen zamanlanmış görevler kurulum ve gidelim.

Sanal makine PHP, subversion, ve mySQL ile kurulmuştur. İşimi kontrolü sunucuları deposundan 'işçi' adlı bir şube, kontrol ve 'svn update' kullanarak güncelleştirilmiş olabilir emin oldum. Sonraki Ben bir köle olarak kurulum mySQL ve veri işçi VM iş denetimi sunucuda mySQL gelen çoğaltarak olduğunu kontrol etti. Bütün bunlardan sonra ben bash betiği ve cron işi ayarlamak.

Benim işleme komut temelde bu hatları (çok basit şeyler) birlikte gitti:

  • Adı alanına Oku
  • VM yapılan veri kaynağından bir tablo içinde benzer isimler sayısı sayılır
  • Boşluklarla yukarıda ama yarma adı (yani adı, orta, soyadı) gibi isimlerin sayısı sayılır
  • Bu proses 1000 defa tekrarlanır

Her iş çalıştırmak için yaklaşık 20 dakika sürdü. Bir noktada ben pencereleri laptop işçi VM birkaç kopya açtı ve işler işçinin her bir IP adresi tarafından kapalı kontrol edilmesi izledi. Bu noktada ben de çoğaltmayı otomatik olarak yeniden doğruladı.

Iş kontrolü sunucudan işlerini işlemek için başlayan bir işçi sonuçlandı rölantide dizüstü bırakmak. Dizüstü bilgisayar kullanımı sürdürme 30-60 saniyelik bir gecikme oldu, bu zaman ve personelin adil bir miktar makine dönerken onların makine kısa bir süre duraklama olabilir farkında yapılması gereken olacaktınız. Yeni makineler bu uzun bir duraklama olmayabilir. Boşta dönemlerinde bu makineleri tarafından gerçekleştirilen işleme miktarı yararı daha bir sabah kendi makinelerine gelmeden kısa bir süre (1 dakika demek) beklemek zorunda personeli daha ağır olacak (Ben sık sık uzun süre beklemek bir Windows Defender için bu ) yer almak güncelleştirmek onlar (bir sabah kahvesi kapmak için yararlı bir zaman!) bunun farkında yapıldı sağladı.

Genel olarak ben böyle bir sistem oluşturmak için kullanılabilecek teknolojiler göstermiştir emin hissediyorum. Ben böyle bir sistemin bir (çok) küçük ölçekte ve biraz daha bir ofisin makineleri kaynakları kullanmak kadar ölçekli olabilir deneme ile çalışır göstermiştir. Bunu yapma noktasına alamazsanız biliyorum / başkasının yaptığında görmek çok ilgi olurdu.

Sonuç / Değerlendirme

Sonraki apaçık adım, aslında gerçek bir dünyadan bir örnek almak ve bir ofis ortamında bu gibi bir sistem dağıtmak ve ne olacağını görmek için başlatmak olacaktır. Teknoloji ve etkinliğini biraz zor olabilir kanıtlamak için bir iz yanan şirket olmadan bu işlemek için bir iş sorma. Grid / Dağıtık bilgi-işlem çok popüler olan bazı çevreler ve bazı büyük uygulama (BIONC, SETI @ Home, Katlanır @ Home, vb) vardır. Ben, ancak, bir ofis ortamında dışarı atılmasında olabilir benim aramalarında bu gibi daha küçük bir ölçekte ve basit bir sistem bulamadı.

Neredeyse herhangi bir ofis mevcuttur çoğunlukla açık kaynak yazılım ve araçları kullanarak bir temelde sistemi oluşturdu. Teknolojileri temelde gösterdi ve beklendiği gibi gerçekleştirmek ve işe göstermek edildi. Umarım çok fazla değil çalışma ile ve çok basit bir kurulum ile aynı zamanda güçlü, ucuz, Â ve ölçeklenebilir bir ofis grid bilgi işlem sistemini dağıtabileceği gösterisi var.

Bir kez, bir sistem ve orada çalışan neredeyse özelleştirme ve siz yapabilirsiniz gelişmeler miktarı sonu yoktur. Örneğin istatistikleri / kıyaslama kolayca her gün böyle bir sistemin değerini gösteren eklenebilir. Yeni makineler hızlı ve kolay bir şekilde eklendi ve mevcut donanım yükseltmeleri ile geldiğinizde sizin işlem gücünü destekleme yapılabilir.

Seni Bu makaleler serisinin okuma zevk aldım ve bir ofis ızgara sistemi üzerinde çalışan düşünce için yiyecek verilen umuyoruz. Burada sunulan çözüm mutlaka her durumda çalışmaz ancak kendi çözüm kullanarak veri işleme yapılması için izin de uyumlu olmalıdır.

Bana herhangi bir yorum, düzeltilmesi veya iyileştirmeler göndermek için çekinmeyin ve ben eşleşecek şekilde güncelleştirilir bu makalede tutmak için elimden geleni yapacağım olun.













Tarafından Panorama Tema Themocracy

Şimdi online 5 visitors
3 misafir, 2 bot, 0 üye
Bugün Max ziyaretçiler: 09:36 13 UTC ÖS
Bu ay: 23-05-2012 03:33 40 UTC ÖS
Bu yıl: 27-02-2012 09:56 de 69 UTC ÖS
Bütün Zaman: 28-03-2011 10:40 pm UTC de 130