Kategori: Linux

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 4

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:59 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Di bagian 3 kita buat mesin pengolah virtual kami dan mengatur mesin windows menjadi pekerja waktu idle.

Menjalankan kode terbaru

Tak pelak setelah membuat logika bisnis Anda pekerja akan berubah, bug yang akan ditemukan, lebih efisien kode yang lebih cepat akan diproduksi sehingga membuat pekerja Anda duduk di sekitar pengolahan data menggunakan kode bau tua . Lalu bagaimana kita memastikan bahwa kami selalu menggunakan versi terbaru dan terbaik dari pengolahan script kita?

Ada beberapa cara sederhana yang sangat mudah kita bisa melakukan hal ini, trik, bagaimanapun, adalah untuk mengurangi kekuatan pemrosesan dan lalu lintas jaringan dalam mencapai hal ini. Mari kita mulai dengan paling sederhana solusi dan memperbaikinya perlahan-lahan selama beberapa iterasi.

Metode pertama adalah dengan hanya terhubung ke server kendali kami pekerjaan (melalui samba, FTP, atau semacam itu) dan tarik ke bawah versi terbaru kode. Tidak sangat efisien, tetapi akan melakukan pekerjaan. Mari memperbaiki yang agak, bagaimana menciptakan sebuah script rsync dan menggunakan bahwa setiap kali saja? Atau apa tentang menempatkan script terbaru pengolahan kami menjadi subversi memeriksa kode pada awalnya dan kemudian hanya memperbarui kode kita pada setiap run ( update svn )?

Pada akhirnya kita bisa berakhir dengan script bash (disebut oleh cron setiap 10 menit) yang tampak sederhana seperti ini:

  #! / Bin / sh
 jika ps ax | grep-v grep | grep php > / dev / null
 kemudian
     echo "Ayub saat ini pengolahan, keluar"
 lain
     echo "Ayub tidak berjalan, mulai sekarang"
     cd / path / ke / kerja / copy
     svn update
     php yourJobProcessingScript.php
 fi 

Sekarang kita bisa yakin bahwa dengan menjalankan setiap kami sungguh-sungguh menjalankan kode terbaru. Kami memastikan hal ini dengan memperbarui basis kode kita masing-masing dan setiap kali kita melakukan lari dan mengurangi lalu lintas jaringan dengan hanya mentransfer file perbedaan di seluruh jaringan kami.

Dalam konfigurasi demonstrasi saya, saya melakukan persis seperti di atas. Subversion dipasang di server pengolahan saya kerja dan saya hanya menarik kode terbaru dari cabang 'pekerja' menggunakan 'svn update'. Saya juga menambahkan tag nomor versi untuk memproses naskah saya yang dikembalikan ke database sebagai bagian dari mengembalikan hasil. Dengan cara ini aku bisa melihat bahwa kode saya sedang diperbarui setiap kali saya disalin bagasi saya ke cabang, yaitu pekerja bahwa saya benar-benar menjalankan skrip pemrosesan terbaru.

Menggunakan data terbaru

Jika proses pekerjaan Anda memanfaatkan sumber data kemudian di beberapa titik ini akan diperbarui. Kecuali Anda menelepon sumber data Anda pada dasar yang sangat jarang terjadi Anda akan membanjiri jaringan dengan lalu lintas segera setelah pekerja Anda mulai berjalan membawa segala sesuatu untuk berhenti. Untuk solusi saya, saya memutuskan bahwa saya ingin memindahkan sumber data saya sekitar dengan VM saya.

Tahan kau kuda di sana! Bagaimana jika sumber data saya BESAR? Nah ini benar-benar adalah kasus berapa banyak data yang kita bicarakan? Ini mungkin biaya yang lebih efektif untuk menginstal sebuah hard drive tambahan yang lebih besar ke mesin masing-masing daripada membeli server pengolahan tambahan. Ini adalah masalah anggaran dan terserah bisnis untuk memutuskan. Ini mungkin bahwa sumber data Anda yang begitu besar yang tidak layak yang hanya untuk menjaga jumlah data pada mesin pekerja Anda. Dalam hal itu apa yang akan Anda lakukan? Yah kita bisa melihat memanggil server data lokal, tetapi ini dapat menyebabkan masalah dengan jaringan. Dalam hal ini suatu sistem grid seperti ini dapat menjadi tidak realistis untuk memasukkan di lingkungan kantor Anda. Ini mungkin juga bahwa Anda dapat melihat ke dalam strategi berjalan alternatif, misalnya hanya memanggil pekerja Anda 08:00-6:00 setiap malam dan / atau data throttling permintaan sumber.

Bergerak pada katakanlah data kami jumlah sumber untuk 100GB data. Nah ya itu cukup sedikit data untuk bergerak di sekitar jaringan pada pembaruan. Bagaimana kita memastikan bahwa kita memiliki salinan terbaru dari data dalam kasus ini? Rsync kemungkinan, tapi secara pribadi saya pikir dengan menjalankan sumber data terbaru Anda pada server pemrosesan Anda kerja dan pengaturan ini sebagai master dalam replikasi (dengan log bin yang bagus panjang) mungkin cara untuk pergi:

replikasi Dengan menetapkan setiap pekerja Anda sebagai budak pembaruan pekerjaan kontrol server untuk sumber data Anda akan menetes ke bawah baik untuk pekerja Anda tanpa peningkatan yang sangat besar dalam aktivitas jaringan (yaitu kecuali jika Anda melakukan update data besar dan seluruh pekerja Anda menendang sekaligus). Ini memiliki keunggulan dibandingkan rsync karena Anda tidak akan mendapatkan jeda lama sebelum setiap pekerjaan, seperti update database, mysql daemon pada pekerja Anda akan terus memperbarui data sementara pengolahan terus.

Ini adalah bagaimana cara mengkonfigurasi server demonstrasi saya. Untuk mengatur replikasi saya mengikuti panduan di situs mySQL ( Menyiapkan replikasi ) dan dalam 20 menit aku pekerja inital saya mereplikasi kontrol pekerjaan dataset server. Untuk setiap pekerja tambahan pengaturan replikasi dan proses bekerja setiap kali ketika VM itu disalin.

Ringkasan

Dalam bagian dari artikel yang kita telah melihat bagaimana mudah dan tanpa rasa sakit itu adalah untuk menjaga kode pengolahan Anda up to date dengan rsync using atau subverion (SVN) untuk melakukan pekerjaan dan mengurangi lalu lintas jaringan di time. sama Kami juga membahas bagaimana untuk menyimpan informasi data sumber Anda up-to-date dengan memungkinkan untuk menetes ke bawah untuk masing-masing pekerja Anda. Jadi kita daerah memastikan bahwa kita tetap dengan logika bisnis dan informasi dalam sistem grid kantor kami. Tidak jelas akan alternatif yang tak terhitung jumlahnya akan melakukan tugas-tugas ini, tapi di sini ada dua contoh sederhana untuk menunjukkan betapa mudahnya solusi akan datang dengan.

Lain kali

Pada bagian akhir seri ini, aptly bernama Bagian 5 , kita akan membicarakan menyebarkan sistem ini. Aku akan meringkas apa yang telah dipelajari dan apa yang saya berhasil menciptakan.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 3

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:37 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Pada bagian 2 kita melihat pekerjaan server akan berjalan, dan bagaimana pekerjaan harus dikonfigurasi untuk mencapai jumlah terbesar sementara proses memastikan bahwa setiap pekerjaan diproses tanpa gagal.

Menyiapkan pekerja Anda - atau server Limp

Langkah berikutnya dalam proses ini adalah untuk mengatur pekerja virtual Anda. Untuk ini saya akan menggunakan instalasi CentOS menggunakan VirtualBox. Aku akan menginstal mySQL dan PHP pada server, juga dikenal sebagai pincang (Li Nux, m ySQL, P HP) Server (saya mungkin telah membuat nama itu atas).

  • Instal VirtualBox pada mesin windows anda (ikuti link)
  • Download dan install CentOS (versi 5.3) dalam mesin virtual yang dibuat

Tidak ada gunanya saya terus ini ada kemungkinan 's / d 1.000 tutorial besar di luar sana (ok, ini satu: Membuat dan Managing mesin virtual CentOS bawah virtualbox ). Poin penting untuk diperhatikan saya kira adalah bahwa saya disebut GridMachine mesin virtual saya.

Sejauh pilihan saya klien virtualisasi dan sistem operasi pergi ke sana ada alasan kuat besar bagi masing-masing pilihan. VirtualBox adalah sesuatu yang saya gunakan di komputer rumah saya dan didukung oleh tiga sistem operasi utama. Saya memilih CentOS sebagai OS nya stabil baik dan saya gunakan di server web sendiri. Saya sangat percaya pada alat yang tepat untuk pekerjaan (walaupun aku menerapkan 'menggunakan tercepat dan termudah untuk Anda' mentalitas di sini), jadi jika sistem operasi X menjalankan kode Anda lebih cepat dan lebih efisien menggunakannya sebagai gantinya:)

Yang penting pastikan bahwa VM Anda menggunakan DHCP, dinyatakan untuk setiap mesin virtual baru akan harus dikonfigurasi secara terpisah yang merupakan sesuatu yang kita tidak want.By menggunakan DHCP kita tidak perlu mengkonfigurasi pengaturan jaringan secara individual untuk mesin pekerja, DHCP akan tangan keluar IP untuk Anda. Karena itu anda dapat menyalin mesin virtual Anda tentang kantor tanpa khawatir tentang pengaturan masing-masing Facebook (ini meningkatkan skalabilitas dan mengurangi administrasi pekerja).

Proses Anda harus berusaha untuk mencapai adalah untuk mendapatkan sebuah mesin fisik baru, instal VirtualBox, dan kemudian cukup banyak menyebarkan gambar virtual tanpa banyak lagi. Mungkin bijaksana untuk setup semua pekerja Anda pada subnet yang berbeda sehingga Anda setidaknya bisa melihat berapa banyak mesin berjalan. Anda juga harus menyiapkan mesin Anda pada sewa panjang atau DHCP sewa terbatas.

Bagaimana menjalankan Jobs pada pekerja

Ini adalah area yang menarik dan ada beberapa metode yang valid untuk pekerjaan pengolahan pada pekerja. Di sini saya hanya akan membahas dua yang paling jelas:

  • Menerus menjalankan script: script A, baik itu shell script, atau script PHP dieksekusi sekali pada pekerja dan berjalan sebagai bagian dari sebuah loop tak terbatas. Saya sudah diskon metode ini sebagai salah satu kecelakaan naskah dan berpotensi pekerja Anda akan berhenti berjalan tanpa semacam intervensi.
  • Cron eksekusi script berdasarkan: Setiap menit X cron daemon kicks off panggilan ke skrip Anda untuk mendapatkan hal yang terjadi. Tanpa memeriksa beberapa hal ini dapat menyebabkan banyak salinan banyak script pekerja Anda berjalan.

Keputusan saya adalah pergi dengan cron yang kicks off shell script setiap 10 minutes. shell script saya melakukan kegiatan sebagai berikut:

  1. Dapatkan daftar proses dan grep ini untuk 'php'. Jika tidak ditemukan maka melanjutkan.
  2. Kode panggilan pekerjaan Anda, dalam kasus saya ini akan menjadi sesuatu yang berbasis PHP
  3. Pekerja script selesai menjalankan perusahaan
  4. Siap untuk pergi lagi pada panggilan yang sesuai berikutnya

bash script saya terlihat seperti berikut:

  #! / Bin / sh
 jika ps ax | grep-v grep |> grep php / dev / null
 kemudian
     echo "Ayub saat ini pengolahan, keluar"
 lain
     echo "Ayub tidak berjalan, mulai sekarang"
     php yourJobProcessingScript.php
 fi 

Catatan: echo adalah hampir sama sekali tidak ada gunanya, tetapi dapat membantu orang berikutnya yang datang untuk mencoba dan mengeditnya.

Yang menyimpulkan set up dari pekerja mesin virtual, cepat, sederhana, dan mudah untuk copy ke setiap bagian hardware baru yang diterima. 'Kepintaran' The sistem grid benar-benar tidak di OS divisualisasikan, yang semua dilakukan dengan kode dibuat untuk pekerjaan proses, konfigurasi pekerjaan, dan dalam memastikan bahwa pekerjaan berjalan saat yang tepat (yaitu ketika tuan rumah itu idle ).

Menyiapkan Windows untuk Menginisialisasinya Pekerja

Tugas pertama adalah untuk bekerja di luar perintah yang diperlukan untuk menjalankan mesin virtual dari baris perintah windows. Jika anda telah menginstal VirtualBox di lokasi default dan Anda sudah bernama GridMachine pekerja Anda maka perintah yang diperlukan untuk memuat pekerja Anda adalah:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Namun untuk menjalankan skrip dalam keadaan 'tanpa kepala' kita perlu menggunakan:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Ini akan memulai mesin virtual tanpa GUI dan memungkinkan untuk menyelamatkan negara dengan anggun. Argumen kedua mematikan RDP sehingga tidak bertentangan dengan windows RDP, atau memberikan pesan tentang mendengarkan pada port 3389. Nama mesin virtual adalah kasus sensitif!

Berikutnya, kita akan perlu untuk mengatur jendela Facebook untuk memulai VM pekerja kita sekali mesin sudah idle. Untuk melakukan hal ini (pada Windows XP) Anda harus pergi Start -> All Programs - Accessories -> System Tools -> Jadwal Tugas sebagai berikut:

jadwal tugas

Selanjutnya klik pada 'Tambahkan Scheduled Task' diikuti dengan menelusuri menambahkan program kustom. Arahkan ke script VBoxManage Anda dan klik ok. Jadwal tugas Anda untuk salah satu pilihan (kita akan perubahan ini dalam satu menit) dan lanjutkan. Setelah melewati jendela layar berikutnya akan meminta Anda yang Anda ingin menjalankan tugas ini, saya sarankan baik 'Administrator' atau membuat pengguna istimewa baru. Ingat kita tidak ingin mengganggu akun staf standar pada mesin pada titik apapun. Klik pilihan acara berikutnya dan periksa lanjutan untuk tugas ini.

Untuk akhir textbox menjalankan menambahkan string 'startvm GridMachine' kami dan memastikan bahwa hanya berjalan ketika login dibiarkan unticked. Kunjungi tugas jadwal berikutnya dan mengubah jadwal drop ke pilihan 'saat menganggur', memilih jumlah waktu yang Anda ingin mesin untuk idle sebelum pindah ke tab berikutnya.

Akhirnya untick opsi yang menyatakan menghentikan tugas jika telah menjalankan X jumlah waktu, tapi jangan centang opsi untuk menghentikan tugas jika mesin tidak lagi menganggur.

jadwal

Itu saja kemudian untuk host setup windows!

Ringkasan

Pada bagian ini kami telah menetapkan suatu mesin virtual untuk bertindak sebagai seorang pekerja, serta cara yang kita sebut dan melaksanakan tugas kita skrip pengolahan (untuk diriku sendiri script PHP). Dari sini kita melihat cara membuat salinan kita jendela untuk memulai mesin virtual dalam modus tanpa kepala ketika komputer menjadi siaga, dan simpan negaranya ketika pengguna kembali penggunaan mesin. Semoga pada saat ini Anda melihat betapa sederhananya adalah untuk mengatur sistem tersebut dan gatal untuk mendapatkan beberapa percobaan pergi sendiri!

Lain kali

Di Bagian 4 kita akan melihat menggunakan alat-alat untuk memastikan bahwa Anda menjalankan versi terbaru dan kode sumber data sehingga hasil yang diperoleh selalu up-to-date dengan informasi bisnis terbaru dan logika.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 1

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:23 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Sebagai seorang PHP developer saya akan menggunakan tools yang saya gunakan setiap hari yaitu, Linux, mySQL , PHP, VirtualBox dan subversi (SVN). Namun saya berharap panduan ini akan beradaptasi dengan bahasa lain dan teknologi baik begitu.

Solusi yang saya berikan akan sangat longgar didasarkan pada jenis pengolahan kami butuhkan untuk mencapai namun hal ini tidak mungkin benar melalui seluruh artikel yang saya akan mengubah sesuatu untuk kesederhanaan, atau untuk menghasilkan skenario penggunaan lebih menarik.

Virtualised lingkungan ini akan berjalan di mesin windows karena ini adalah apa yang sebagian besar kantor dijalankan. Pengolahan bahwa mesin kantor tidak boleh mengganggu dengan staf menggunakan mesin-mesin, seharusnya tidak memerlukan perawatan di mesin, dan mudah deployable untuk mesin baru saat tersedia. Selain itu, mesin virtual yang baru seharusnya tidak memerlukan konfigurasi tambahan karena hal ini sangat mengurangi skalabilitas dan kemudahan di mana sistem grid dapat diperpanjang.

Mengapa Menyebarkan sebuah Grid Computing Kantor?

Pertama anda mungkin berpikir, mengapa tidak hanya menggunakan sumber daya komputasi awan seperti Amazon EC2 platform ? Yah bisa beberapa alasan, misalnya:

  • Anda tidak akan mempercayakan data tertentu untuk sebuah lingkungan komputasi awan
  • Anda tidak dapat menempatkan data tertentu ke sebuah lingkungan komputasi awan untuk alasan hukum (misalnya data meninggalkan negara), berpotensi karena alasan hukum, misalnya catatan NHS.
  • Anda ingin menyimpan unit pengolahan Anda dekat dan memiliki kendali penuh atas hardware terlalu
  • Anda tidak memiliki dana proyek untuk menjalankan contoh awan
  • kantor Anda tidak memiliki koneksi ke internet dan karena itu yang tidak mungkin untuk menggunakan sumber daya awan
  • Anda tidak seperti hujan, awan menyarankan hujan, karena itu Anda tetap cukup jauh

Aku yakin daftar itu bisa terus, tapi saya berpikir bahwa cukup untuk saat ini.

Keuntungan dari Grid Computing Kantor

Yah, mari kita melakukan beberapa matematika (dan dalam gaya fisika benar memungkinkan membuat beberapa asumsi sweeping). Bayangkan Anda memiliki server pengolahan besar berdaging menjalankan 100 pekerjaan per hari. Di kantor Anda, Anda memiliki 50 mesin yang idle 16 jam sehari, masing-masing mesin adalah 10% sekuat pengolahan berdaging Anda memutuskan. (Semua hasil di sini adalah bulat untuk meningkatkan kinerja meremehkan).

Jadi, 1 mesin * 10% * power 2 / 3 waktu = 0,067 yaitu 1 pengolahan desktop di waktu idle dapat memproses 6 pekerjaan penuh per hari.

Jika Anda sekarang skala ini Facebook dibutuhkan 15 desktop siaga untuk proses sebagai banyak pekerjaan per hari sebagai server pemrosesan utama Anda tidak.

Jadi di kantor pura-pura kita 50 mesin kita bisa meningkatkan kekuatan pemrosesan kami dari 1 server sampai dengan 4 server pengolahan penuh, atau kita bisa memproses 400 pekerjaan per hari bukan 100.

Perhatikan, karena tidak ada investasi perangkat keras baru perusahaan Anda baru saja meningkatkan kapasitas pemrosesan batch 4 kali! Anda akan berpotensi untuk meningkatkan penggunaan kekuatan Anda tapi dari lingkungan kantor paling saya pernah ke mesin umumnya tersisa pada semalam, jadi Anda bisa melihat ini sebagai sebuah inisiatif hijau.

Keuntungan lain juga berarti bahwa investasi baru (atau diperbarui) server pengolahan dapat ditunda jika mesin kantor Anda sudah cukup dan bahwa Anda meningkatkan kekuatan mesin kantor Anda grid kantor Anda menjadi lebih kuat secara otomatis.

Technologies

Apa yang anda butuhkan? (Atau lebih tepatnya apa yang saya gunakan):

  • Idle Mesin kantor (dalam kasus saya laptop windows XP lama cadang)
  • VirtualBox (atau software klien virtualisasi)
  • Sebuah mesin virtual dengan PHP, mySQL running menjalankan ditebang OS, aku memanggil Limp ini saya server:)
  • Pekerjaan untuk menjalankan
  • Ayub server (bisa mesin virtual lain di suatu tempat)

Khas Pekerjaan

Jenis-jenis pekerjaan yang sistem ini dirancang untuk menjalankan adalah sebagai berikut:

  • Sistem menerima daftar data atas mana kita harus mencocokkan dan mengembalikan hasil
  • Pencocokan melibatkan pemeriksaan / mencari beberapa (cukup statis) sumber data
  • Hasil dari sumber data mungkin memerlukan validasi lebih lanjut, penggabungan, memeriksa sumber data tambahan dalam menanggapi hasil
  • Data kembali dengan catatan yang cocok, sepenuhnya divalidasi dan diproses
  • Setiap catatan dalam pekerjaan adalah independen dari sisanya

Jadi pada dasarnya kita cari dalam menjalankan pekerjaan yang memerlukan campuran pencarian database dan beberapa angka-angka, sebuah skenario yang cukup khas dalam lingkungan bisnis.

Grid solusi tidak hanya menguntungkan untuk memproses pekerjaan jenis ini. Pada dasarnya, setiap proses yang dapat dibagi menjadi unit yang independen dapat dijalankan secara paralel. Lihat wikipedia ini untuk contoh dan informasi lebih lanjut: Grid Computing , namun beberapa contoh terkenal adalah Seti @ Home dan BIONC . Ada kerangka kerja untuk menjalankan komputasi grid, dan ini layak melihat ke dalam.

Apa yang akan kita capai?

Pada akhir artikel ini saya berharap dapat menunjukkan bahwa pengerahan grid kantor tidak perlu mahal atau sangat memakan waktu. Aku akan membahas:

  • Menyiapkan sistem kontrol pekerjaan, konfigurasi pekerjaan
  • Membuat mesin virtual yang sesuai pengolahan
  • Cara setup sistem pada mesin windows
  • Memastikan Anda menggunakan kode terbaru dan data
  • Deployment dan benchmarking
  • Ke depan

Aku akan membangun (ok yang saya bangun, lalu menulis ini) contoh aplikasi untuk menguji konsep-konsep pada mesin lokal dengan menggunakan windows XP dan mesin virtual 'GridMachine' saya. Server saya kontrol pekerjaan akan menjadi mesin utama saya yang menjalankan Fedora 11 .

Ini sama sekali tidak dimaksudkan untuk menunjukkan sistem yang handal bekerja sepenuhnya, yang berarti lebih dari demonstrasi dan mendiskusikan menunjukkan bahwa hal-hal ini dapat dicapai dalam ruang yang cukup singkat dan biaya yang murah. Silahkan kirim komentar, koreksi, atau perbaikan dan saya akan melakukan yang terbaik untuk menjaga artikel ini diperbarui untuk mencocokkan.

Lain kali

Pada bagian 2 Aku akan mulai dengan melihat pada sistem kontrol pekerjaan, dan melihat bagaimana pekerjaan harus dikonfigurasi untuk mencapai jumlah terbesar sementara proses memastikan bahwa setiap pekerjaan diproses tanpa gagal.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 2

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:23 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

Dalam Bagian 1 saya memberi gambaran dari sistem dan teknologi saya akan menggunakan juga dibahas beberapa kemungkinan alasan mengapa Anda ingin membuat grid kantor.

Job Control

Jika Anda akan menjalankan pekerjaan maka Anda akan memerlukan beberapa cara untuk mengatur mereka. sistem kontrol pekerjaan yang Anda (di server pekerjaan Anda) harus benar-benar dipikirkan dengan baik bahkan sebelum mencoba untuk menjalankan sebuah jaringan kantor. Jadi pertama, apa tugas untuk sistem kontrol pekerjaan:

  • Bagikan pekerjaan atas permintaan dari pekerja
  • Pekerja Beritahu jenis pekerjaan untuk dijalankan
  • Track pekerjaan
  • Pastikan bahwa pekerjaan hanya berjalan sekali
  • Menyediakan data pekerjaan untuk para pekerja, atau setidaknya memberitahu mereka di mana mendapatkannya

Sistem ini juga perlu diperluas, solusi yang bekerja untuk saat ini dalam satu kasus dapat diperpanjang untuk menjalankan beberapa jenis pekerjaan sebagai bisnis melihat berharga dalam larutan grid. Misalnya, pekerjaan bisa mendapatkan prioritas, lebih dari satu jenis pekerjaan mungkin ada (yaitu kode basis beberapa), akhirnya Anda bahkan dapat menjalankan mesin beberapa pekerja yang berbeda yang dioptimalkan untuk setiap jenis pekerjaan (walaupun yang bergerak menjauh dari 'pekerja generik 'ide). Selalu mencoba untuk berpikir tentang masa depan ketika sistem berkembang, visi jangka pendek dapat menyebabkan frustrasi jangka panjang dan waktu pengembangan meningkat.

Ayub Server

Kita akan membutuhkan tempat untuk mengendalikan pekerjaan kita dari, ini harus menjadi sistem hanya dalam grid Anda yang memiliki resource locator tetap, adalah bahwa alamat IP, nama host, URL (menggunakan DNS internal), dll Ini adalah karena pekerja perlu tahu di mana untuk mencari pekerjaan, pekerja harus mencari sistem kerja kontrol (bukan sistem kontrol pekerjaan menemukan pekerja).

Server pekerjaan itu sendiri tidak benar-benar memiliki tugas yang rumit (dalam bagaimanapun sistem dasar), perlu untuk menyimpan daftar pekerjaan, pekerjaan tangan keluar, menerima hasil, dan kemudian menyimpannya untuk pengambilan nanti. Bagaimana bagian-bagian ('tangan dari pekerjaan' seperti) yang ditetapkan bisa sangat dasar. Kemudian kita dapat memperluas sistem untuk menyertakan sebuah antarmuka administrasi untuk menambah, mengedit, menghapus, menunda pekerjaan tapi ini di luar latihan ini.

Tidak ada alasan apapun maka pekerjaan bahwa server Anda tidak bisa menjadi mesin virtual yang berjalan dalam server pemrosesan utama Anda asalkan tidak terlalu banyak menguras sumber daya dari itu. Server pekerjaan namun tidak ketersediaan kebutuhan yang tinggi, jika turun pada Jumat malam Anda akan kehilangan seluruh akhir pekan pengolahan, berpotensi biaya Anda beberapa minggu senilai waktu proses (jika dibandingkan dengan server utama pemrosesan Anda sendiri) . Anda mungkin ingin mempertimbangkan untuk menempatkan server pekerjaan Anda di lingkungan yang seimbang beban untuk ketersediaan tinggi.

Basic Setup

Konfigurasi dasar untuk server pekerjaan kami akan terdiri dari apa yang saya menelepon salah satu dari Limp server saya (yaitu Li Nux, ySql m, P HP). Kode berjalan pada pekerja Thea benar-benar akan bekerja apa pekerjaan dapat berjalan dengan berinteraksi dengan dengan database pekerjaan sistem kontrol. Kemudian kita bisa membuat web service dan benar-benar tangan keluar pekerjaan daripada memiliki pekerja melakukan kerja keras sendiri, tetapi untuk sekarang kita akan terus menggunakan prinsip KISS (Keep it Simple, Stupid!).

Jadi, mari membuat tiga mySQL tabel untuk menangani pekerjaan. Ini akan menjadi `pekerjaan`, `jobRecords`, dan `jobResults`.

pekerjaan tabel Disini Saya menggunakan SQL Buddy alternatif yang sedikit besar untuk phpMyAdmin hanya karena lebih mudah untuk diinstal pada CentOS (untuk orang lain lihat: 10 alternatif Besar ke phpMyAdmin )

Tabel ini terdiri dari 5 bidang yang sederhana,

  • id: Uniknya mengidentifikasi pekerjaan
  • Nama: Bisa jadi referensi klien, atau jumlah pengenal lainnya
  • Status: Anda perlu tahu di mana pekerjaan itu pada, misalnya
    • 0: Belum dimulai
    • 1: Dijemput
    • 2: Selesai
  • started_by: Siapa yang mulai melakukan pekerjaan? Hal ini tidak sepenuhnya dibutuhkan tetapi adalah baik untuk memiliki. Saya sarankan pelacakan pekerja dengan alamat IP pada jaringan Anda
  • started_at: Kapan pekerja memulai pekerjaan? Dengan pelacakan pekerjaan yang belum selesai dalam waktu X jumlah waktu kita tahu kita perlu mengambil pekerjaan sekali lagi dan mulai memproses oleh pekerja lain. Pekerja bisa menghentikan pengolahan / offline untuk sejumlah alasan, listrik mati, kecelakaan, kehilangan jaringan, dll

Sangat mudah bagaimana tabel ini dapat diperpanjang dengan beberapa kolom tambahan untuk memungkinkan untuk statistik pelacakan, kolom waktu selesai untuk melihat berapa lama pekerjaan itu mengambil, sebuah counter untuk melihat berapa banyak pekerja mengambil pekerjaan itu (jelas ini perlu cenderung 1), prioritas pekerjaan, daftar bisa terus dan terus. Dalam skenario pekerjaan yang lebih kompleks akan mungkin untuk menentukan berapa banyak memori pekerja akan membutuhkan akses ke (dan karena itu hanya menggunakan pekerja sesuai), atau bahkan jenis pekerja akan diperlukan.

Mari menambahkan pekerjaan beberapa contoh:

contoh pekerjaan

Tabel berikutnya lagi adalah cukup sederhana untuk memahami, ini adalah catatan pekerjaan kita. Mereka terkait dengan tabel pekerjaan utama dengan sebuah kolom `jobs_id`. Yang membuat tabel ini sangat tergantung pada data yang Anda butuhkan untuk memasok para pekerja Anda, memungkinkan membuat contoh yang sangat sederhana di mana kita memiliki empat kolom:

  • id: ID dari catatan
  • Nama: Nama Orang
  • Alamat: alamat Person
  • jobs_id: ID pekerjaan yang catatan ini terkait dengan

Tabel ketiga dan terakhir terdiri dari tabel hasil, itu telah sama make up sebagaimana tabel catatan kami, dan dengan penambahan beberapa kolom bisa menjadi bagian dari tabel catatan:

  • job_record_id: Link hasilnya ke meja kerja
  • Hasil: Data hasil

... Dan itu semua Anda butuhkan untuk kontrol pekerjaan! (Meskipun pada tingkat yang sangat dasar) Dalam kasus saya, saya menunjuk ke meja tempat data saya untuk memproses berada, tapi ini bisa saja menjadi file, parameter untuk menjalankan kode simulasi, apa saja.

Memilih pekerjaan

Sebagaimana dinyatakan sebelumnya, para pekerja akan melakukan manajemen tugas kita untuk kita untuk saat ini, sehingga semua kita harus benar-benar lakukan adalah mencari pekerjaan yang memerlukan pemrosesan dan mendapatkan informasi. Bagaimana kita melakukan ini? Nah tugas kami memilih kriteria seleksi dan mencari pekerjaan, di SQL saya melakukan hal berikut:

  1. Mengambil pekerjaan yang tidak ditandai sebagai lengkap tapi dari pekerja kami dan ulang mereka (__ME__ gantikan dengan sebuah identifier, termudah akan alamat IP):
      UPDATE `pekerjaan` SET `status` = 0 WHERE `status` = 1 DAN `started_by` = __ME__; 
  2. Menggunakan tugas kita kriteria seleksi, pilih pekerjaan dan kepada sistem kontrol yang pekerja ini berurusan dengan itu:
      UPDATE `pekerjaan` SET `status` = 1, `started_by` = __ME__, `started_at` = NOW () WHERE `status` = 0 OR
     (`Status` = 1 DAN `started_at`> DATE_SUB (NOW (), INTERVAL X JAM)) ORDER BY `id` ASC; 

    Dengan menyambar pekerjaan yang belum kembali hasil sebesar X waktu kami memastikan bahwa semua pekerjaan yang berjalan jika seorang pekerja menabrak atau pergi AWOL.

  3. Selanjutnya ambil rincian pekerjaan diikuti dengan catatan sendiri:
      SELECT * FROM `pekerjaan` WHERE `started_by` = __ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __JOBID__; 

Setelah menyelesaikan pekerjaan kami memasukkan kami hasil catatan dan menandai tugas sebagai selesai. Ingat sebagai pekerjaan dapat menangguhkan / resume kapan saja memungkinkan untuk beberapa kekokohan dalam naskah anda. Mungkin bahwa tugas menghentikan setengah jalan melalui memperbarui sistem kontrol pekerjaan, sehingga memeriksa jumlah record dalam pekerjaan dan jumlah hasil disimpan kembali ke sistem kontrol pekerjaan akan menjadi langkah yang bijak.

Selain itu, sementara ini menunjukkan bagaimana pekerjaan dapat dipilih dan dikelola dari frame-query SQL Anda benar-benar harus mencabut kontrol pekerjaan Anda sehingga jika Anda memutuskan untuk beralih menggunakan layanan web, yang didasarkan sistem file, XML , atau lainnya sejumlah sistem itu tidak akan mempengaruhi kode di atasnya.

Job Konfigurasi

Aspek berikutnya yang perlu dipertimbangkan adalah pekerjaan ukuran dan konfigurasi. Dengan bermain dengan konfigurasi pekerjaan kita bisa menyerang keseimbangan yang sangat baik antara kecepatan, proses replikasi, dan kehandalan. Ambil beberapa OFA skenario:

  1. Pekerjaan mengambil 1 setiap hari untuk menjalankan: Ini berarti bahwa para pekerja Anda butuh 15 hari untuk memproses setiap pekerjaan (ingat 10% dari kekuatan untuk 2/3rds dari waktu). Ini jelas bukan konfigurasi bijak, ukuran pekerjaan Anda terlalu besar! Itu akan mengambil setidaknya dua kali waktu untuk mendapatkan pekerjaan harus diproses pekerja awal pergi AWOL (waktu untuk mengambil bahwa hal itu tidak kembali hasil ditambah waktu pemrosesan kembali). Dalam ideal Anda akan memiliki minimal satu pekerjaan penuh mudah dibersihkan pada akhir setiap periode idle lama, bahwa cara Anda menjaga pekerjaan berdetak lebih dan pada kasus terburuk pekerjaan akan mengambil dua hari untuk memproses harus yang pertama hilang.
  2. Pekerjaan mengambil 1 menit untuk menjalankan: Ini berarti bahwa para pekerja Anda memakan waktu sekitar 15 menit untuk menjalankan setiap pekerjaan. Sementara ini awalnya mungkin tampak ideal, Anda mendapatkan pengolahan pekerjaan tambahan selama waktu makan siang, istirahat kopi, pertemuan, dll skenario ini membuat kerusakan pada area lain dari sistem anda dan memperkenalkan masalah sendiri. Sebagai contoh, pertama setup Anda / pengolahan rasio waktu akan pergi ke kanan bawah, sehingga kehilangan efisiensi sistem. jaringan Anda akan terus-menerus streaming informasi kerja dengan berbagai pekerja staf frustasi yang dong hari mereka untuk bekerja sehari. Anda juga akan menambah beban lebih pada server pemrosesan pekerjaan Anda karena harus mengeluarkan banyak dan banyak potongan-potongan kecil pekerjaan secara teratur. Terakhir, dalam situasi ini jika server pekerjaan Anda turun Anda akan membuat log kembali besar dari pekerjaan yang belum selesai sementara pekerjaan yang lebih besar bisa dari pengolahan lanjutan tidak menyadari bahwa server kerja adalah mengalami kesulitan.

Pada kenyataannya tidak akan ada konfigurasi satu ideal untuk pengaturan grid Anda, banyak tergantung pada sumber daya yang tersedia, jenis pekerjaan, persyaratan kerja waktu turnaround, kemampuan jaringan, dan sebagainya. Namun beberapa pedoman akan menjadi:

  • Ukuran pekerjaan sehingga setiap pekerja bisa melalui setidaknya 3-4 pekerjaan dalam jangka waktu 15 jam (periode waktu terlama mungkin idle)
  • Bermain dengan ukuran pekerjaan sehingga waktu setup menjadi cukup signifikan dibandingkan waktu pemrosesan (mengingat titik di atas).
  • Jika pekerjaan tidak lengkap dalam dua kali lipat jumlah waktu (mungkin kurang) Anda harapkan untuk menyelesaikannya berasumsi bahwa AWOL yang hilang dan mulai memproses dengan pekerja lain. Ini berarti Anda mungkin harus menunggu hingga tiga kali panjang normal pekerjaan sampai selesai (mungkin lebih lama jika pekerjaan berikutnya gagal). Anda mungkin ingin mengurangi saat ini, tapi hati-hati tidak untuk mengurangi terlalu banyak karena Anda mungkin mulai menduplikasi tugas-tugas pengolahan secara teratur.
  • Pekerjaan harus independen dari persyaratan luar sebanyak mungkin. Server pekerjaan, misalnya, hanya harus dihubungi pada awal dan akhir setiap pekerjaan.
  • Jangan jenuh jaringan Anda, ini akan memiliki dua efek negatif, staf siang hari Anda akan menemukan menggunakan jaringan frustasi dan masalah mungkin dialami dengan koneksi waktu keluar masalah yang hanya akan bertambah buruk karena Anda skala grid Anda.
  • Pastikan pekerjaan dapat berjalan pada pekerja Anda. Jika pekerjaan menjadi terlalu memori pekerjaan ruang intensif atau intensif disk akan mulai membatalkan dan satu-satunya adalah Anda akan melihat penurunan jumlah pekerjaan yang telah diproses tanpa alasan mengapa.

Menyerahkan Hasil Pekerjaan yang

Ketika menyerahkan hasil dari pekerjaan adalah penting untuk memeriksa bahwa hasil belum diserahkan oleh pekerja lain, terutama jika pekerja saat ini telah tidak aktif selama beberapa waktu.

Bila hasil disampaikan memastikan bahwa jumlah hasil pertandingan jumlah record dalam pekerjaan.

Sebagaimana dinyatakan sebelumnya, dan tidak bisa lebih ditekankan, membangun toleransi kesalahan ke dalam sistem pengambilan dan penyerahan hasil pekerjaan. Para pekerja dapat (dan kemungkinan besar akan) masuk ke mode Suspend di paling nyaman kali dan ini harus dipenuhi. Juga sekali lagi pergi pengiriman abstrak hasil Anda akan membantu memenuhi untuk perubahan masa depan untuk sistem kendali Anda pekerjaan lebih mudah untuk menangani.

Ringkasan

Dalam section ini kita telah melihat apa server kontrol pekerjaan perlu dilakukan dan bagaimana untuk mendapatkan sistem yang sangat dasar yang mengatur. Kita mendiskusikan bagaimana untuk mengambil pekerjaan dari sistem kontrol dan cara terbaik untuk mengkonfigurasi pekerjaan untuk mendapatkan yang paling kita sistem grid kantor Anda. Untuk menyelesaikan, satu atau dua paragraf di mengirimkan hasilnya kembali ke server kontrol kerja adalah disajikan.

  • Sebuah server kontrol pekerjaan mengelola pekerjaan dan memastikan bahwa semua unit kerja selesai
  • Dengan abstrak pekerjaan Anda pilih / penyampaian hasil yang kita dapat mengubah teknologi dari server kontrol tanpa masalah banyak
  • Konfigurasi pekerjaan Anda untuk memastikan bahwa mereka dijalankan dengan cepat dan efisien tanpa memberi tekanan terlalu banyak pada infrastruktur jaringan Anda, dan tanpa duplikasi tugas pengolahan secara teratur.
  • Pastikan bahwa Anda membangun toleransi kesalahan dan checking kesalahan ke dalam rutinitas Anda, pekerja dapat menunda dan melanjutkan dan yang paling nyaman kali. Ingatlah untuk memeriksa apakah hasil yang telah disampaikan oleh pekerja lain.

Lain kali

Di bagian 3 kita akan menciptakan mesin virtual pengolahan kami dan mengatur jendela kami mesin menjadi idle-time.

Kantor Grid Computing menggunakan lingkungan Virtual - Bagian 5

Dengan Watkin Lloyd Steven , 4 Desember 2009 23:03 Jumat

Pengantar

Saya bekerja di sebuah perusahaan di mana kita menjalankan banyak pekerjaan batch processing jutaan catatan data setiap hari dan saya sudah berpikir baru-baru ini tentang semua mesin yang duduk-duduk masing-masing dan setiap hari melakukan apa-apa selama beberapa jam. Bukankah lebih baik jika kita bisa menggunakan mesin-mesin untuk meningkatkan kekuatan pemrosesan sistem kita? Dalam Seri artikel ini saya akan melihat potensi manfaat mempekerjakan kantor grid menggunakan lingkungan virtualised.

In Part 4 we looked at using tools to ensure that we're running the latest version of the code and data sources so that obtained results are always up-to-date with the latest business information and logic.

Pre-Deployment

Before deploying your grid system if there's one thing you do and one thing alone it's benchmark your current system ! No matter what you tell colleagues about how much extra work your system is going to do unless you have numbers to back this up your guarantees are nothing. Jadi,

  • how many records can you process currently? Per Day? Per Hour?
  • How long does it typically take to turn around a job?
  • How much more capacity do you have?

There's also additional questions:

  • If your processing server (or one of your processing servers) goes down how will this affect your capabilities, will you be crippled?
  • What advantages do you hope/expect to get from a grid system?
  • Are your office machines capable of running the jobs?
  • Are your (or can you jobs be converted) to wrok in this style of running?

The last major point is to take your time on any major change like this. Update your processing code to work using the new methodology, benchmark again. Possibly set up your processing server to run a virtual machine, after all your processing server will just be another worker (just a very powerful one relatively). Allow the new process to settle.

Deployment

My suggestion would be to pop into the office one weekend perform all the installations and setup. Do this just before a fortnight's holiday and leave so other poor chap to deal with the consequences… maybe not…

Deployment for a system like this needs to be slow. Despite it being relatively simple to set up this system will affect your entire office infrastructure (well the digital one). Firstly, roll out to a couple of machines at a time, monitor network traffic, how the worker hosts perform on a day-to-day basis. You may need to alter your job configuration in response to your findings.

Once the system has settled with a few machines (lets say 10% of all office machines, ie 5) keep monitoring network traffic and host machine performance. Next benchmark again, you should now be processing 33% more jobs than your first benchmarks. Check this is so, or that you're at least in this ballpark. If not, investigate what is going on before moving on. Repeat this cycle until you happily have all office machines running without killing individual machine performance or grinding your network to a standstill.

At all times keep benchmarking, even after all deployments are made. Check how new code updates affect speed of your system, check all workers are reporting in and processing jobs. Slowly (very slowly) increment your job configuration to get the best from your workers and network.

Stop!

Bagaimana jika Anda ingin menghentikan pekerja Anda dari berjalan pada beberapa waktu? Mereka semua ada berjalan, regenerasi, dan mencoba yang terbaik untuk memproses data seperti serangga lapar. Jawabannya mungkin tampak jelas tapi nilainya menambahkan hanya dalam kasus yang diabaikan. Cukup mengedit script pengolahan Anda dengan exit (0) atau mati () atau beberapa pernyataan lain untuk membunuh pekerjaan pengolahan Anda. Sebuah alasan penting mengapa kita selalu mencoba untuk update ke skrip pemrosesan terbaru sebelum menjalankan!

Sistem Demonstrasi

Dalam rangka untuk menulis artikel ini set pendek saya membuat sebuah kotak yang sangat kecil untuk mendemonstrasikan teknologi dan metodologi. Saya membaca banyak artikel, tutorial, dan digunakan berbagai alat untuk setup dan memonitor apa yang terjadi. Dengan tidak berarti aku pergi keluar dan jenuh kantor keseluruhan dengan lalu lintas dan juga tidak pernah saya memiliki akses ke PC anggota staf biasa untuk melihat bagaimana kinerja host terpengaruh.

demonstrasi sistem saya sangat sederhana memang. Saya menggunakan desktop biasa saya set sebagai server kontrol pekerjaan. Pada ini saya telah terinstal mySQL server terinstal ditetapkan sebagai master dalam replikasi, PHP , Â dan SVN dihubungkan melalui apache (untuk akses melalui pekerja VM).

Saya kemudian membuat sebuah mesin pekerja CentOS pada VirtualBox pada laptop berusia 6 tahun windows XP. Aku setup dijadwalkan tugas sebagaimana ditentukan setelah menyalin VM ke mesin dan membiarkannya pergi.

Mesin virtual didirikan dengan PHP, subversi, dan mySQL. Aku memeriksa cabang bernama 'pekerja' dari server repositori kontrol pekerjaan saya dan membuat yakin itu dapat diperbarui dengan menggunakan 'svn update'. Berikutnya setup Aku mySQL sebagai budak dan memeriksa bahwa data replikasi dari mySQL di server kontrol pekerjaan ke VM pekerja. Setelah semua ini saya setup script bash dan cron job.

pengolahan script pada dasarnya saya pergi sepanjang garis ini (hal yang sangat sederhana):

  • Baca di bidang nama
  • Menghitung jumlah nama yang mirip dalam tabel dari sumber data yang diadakan pada VM
  • Menghitung jumlah nama-nama seperti di atas tapi membelah nama dengan spasi (nama kecil, yaitu tengah, nama keluarga)
  • Repeated this process 1,000 times

Each job took approximately 20 minutes to run. At one point I opened several copies of the worker VM on the windows laptop and watched the jobs be checked off by each of the worker IP addresses. At this point I also confirmed that replication automatically restarted.

Leaving the laptop to idle resulted in a worker starting to process jobs from the job control server. When resuming laptop usage there was a delay of about 30-60 seconds, this is a fair amount of time and staff would need to be made aware that their machine may pause for a short while when returning to the machine. Newer machines may not have a pause of this long. The benefit of the amount of processing performed by these machines during idle periods would more that outweigh staff members having to wait a short period (say 1 minute) on arriving at their machines of a morning (I frequently wait longer that this for a Windows Defender update to take place) provided they were made aware of this (useful time to grab a morning coffee!).

Overall I feel confident that I have demonstrated the technologies that could be used to create such a system. I have shown that such a system does work on a (very) small scale and with some more experimenting could be scaled up utilise the resources of an office's machines. If I don't get to the point of doing this I would be very interested to know/see when someone else does.

Conclusions / Evaluation

Langkah pasti yang berikutnya adalah untuk benar-benar mendapatkan contoh dunia nyata dan mulai untuk menggelar sebuah sistem seperti ini dalam lingkungan kantor dan melihat apa yang terjadi. Meminta bisnis untuk melakukan ini tanpa sebuah perusahaan jejak menyala untuk membuktikan teknologi dan efektivitas mungkin sedikit sulit. Grid / komputasi terdistribusi yang sangat populer adalah beberapa kalangan dan memiliki beberapa aplikasi besar (BIONC, SETI @ Home, Folding @ Home, dll). Aku tidak, bagaimanapun, menemukan skala yang lebih kecil dan sistem sederhana seperti ini dalam pencarian saya yang dapat diluncurkan dalam lingkungan kantor.

Saya menciptakan sistem pada dasarnya bebas menggunakan perangkat lunak sumber terbuka dan sebagian besar alat yang tersedia di hampir setiap kantor. Teknologi pada dasarnya menunjukkan dan menunjukkan untuk melakukan dan bekerja seperti yang diharapkan. Mudah-mudahan saya telah menunjukkan bahwa dengan tidak bekerja banyak dan dengan setup yang sangat sederhana Anda bisa menyebarkan sebuah sistem komputasi grid kantor yang sangat kuat, murah, Â dan scalable semua pada waktu yang sama.

Setelah sebuah sistem dan berjalan hampir tidak ada akhir untuk jumlah penyesuaian dan perbaikan Anda dapat membuat. Untuk statistik contoh / benchmarking dengan mudah dapat ditambahkan menunjukkan nilai dari sistem tersebut setiap hari. mesin baru dapat ditambahkan dengan cepat dan mudah dan ketika mereka tiba dengan upgrade ke hardware yang ada memperkuat daya proses Anda.

Saya harap Anda menikmati membaca rangkaian artikel dan yang memberi Anda makanan untuk berpikir untuk menjalankan sistem grid kantor. Solusi yang disajikan di sini tidak akan selalu bekerja dalam segala situasi tetapi harus disesuaikan untuk memungkinkan Anda untuk mendapatkan pengolahan data dilakukan dengan menggunakan solusi sendiri.

Silahkan kirim komentar, koreksi, atau perbaikan dan saya akan melakukan yang terbaik untuk menjaga artikel ini diperbarui untuk mencocokkan.

[notice] child pid XXXX exit signal Segmentation fault (11)

By Steven Lloyd Watkin , Sunday 11th October 2009 6:09 pm

If you've recently upgraded PHP or Apache you maybe coming up against the issue of your webserver returning blank pages, and throwing error messages into your logs with no idea why, here's one possible way to fix it…

I've had this problem a couple of times recently after upgrading Apache or PHP on a virtual machine. The first time I noticed the error I simply reverted to a backup of my VM but the second time I realised I'd have to look into the issue.

The first time I noticed the issue some of my web pages were being served as blank files while the others worked absolutely fine. After some investigation I noted that apache was writing out to /var/log/http/error_log with the following message repeatidly:

[notice] child pid XXXX exit signal Segmentation fault (11)

There's not allot to go by on-line, and most of the pages about it trail off to nothing. That said, I narrowed down the issue to PHP crashing when trying to unneeded dynamic libraries.

Looking at my php.ini (/etc/php.ini) I commented out all of the dynamic libraries loaded planning on commenting them back in as required. The two I had to take out where pdo.so and mysql .so .

Once these were removed all my web pages were being served fine, just as before the PHP/Apache update.

Wireless on Acer 5002 WLMi on Linux (Fedora 11)

By Steven Lloyd Watkin , Saturday 11th July 2009 9:48 pm

As I've spent another few hours today without internet access I thought I'd better get this written down so that next time I mess my laptop up the information is easy to fix.

Basically to get wireless drivers working for an Acer 5002 WLMi you'll need to use b43-fwcutter. Instructions can be found here: Linux Wireless B43 .

Easy once the information is located.













Panorama Tema oleh Themocracy

3 pengunjung online sekarang
2 tamu, 1 bot, 0 anggota
Max pengunjung hari ini: 12 jam 09:44 UTC
Bulan ini: 26 jam 2011/07/05 00:35 UTC
Tahun ini: 130 pada 28-03-2011 10:40 UTC
Sepanjang waktu: 130 pada 28-03-2011 10:40 UTC