Bài viết được gắn thẻ: công nhân

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 3

, thứ Sáu ngày 04 tháng 12 năm 2009 23:37

Giới thiệu

Tôi làm việc trong một công ty mà chúng tôi chạy nhiều công việc hàng loạt chế biến hàng triệu bản ghi dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi ngày và không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài viết này, tôi sẽ xem xét các lợi ích tiềm năng của việc sử dụng một văn phòng lưới điện bằng cách sử dụng môi trường ảo hóa.

Trong phần 2 chúng ta nhìn vào việc làm một máy chủ sẽ chạy, và làm thế nào công việc nên được cấu hình để đạt được số tiền lớn nhất của chế biến trong khi đảm bảo rằng mỗi công việc được xử lý mà không thất bại.

Nhân viên của bạn hoặc máy chủ khập khiễng

Bước tiếp theo trong quá trình là thiết lập các công nhân ảo của bạn. Đối với điều này, tôi sẽ sử dụng một cài đặt của CentOS bằng cách sử dụng VirtualBox. Tôi sẽ cài đặt mySQLPHP trên máy chủ, còn được gọi là (Li nux, m ySQL, P HP) Limp ServerA (tôi có thể đã thực hiện rằng tên lên).

  • Cài đặt VirtualBox trên máy tính các cửa sổ của bạn (theo liên kết)
  • Tải về và cài đặt CentOS (phiên bản hiện hành 5.3) bên trong một máy ảo được tạo ra

Không có điểm tôi sẽ có 1.000 's hướng dẫn tuyệt vời có (ok, đây là một: Tạo và máy ảo trong VirtualBox Managing CentOS ). Điểm quan trọng cần lưu ý tôi giả sử là tôi được gọi là máy ảo của tôi GridMachine.

Theo như sự lựa chọn của khách hàng ảo hóa và hệ điều hành đi không có lý do hấp dẫn lớn đối với mỗi sự lựa chọn. VirtualBox là một cái gì đó tôi sử dụng trên máy chủ của tôi và được hỗ trợ bởi ba hệ điều hành chính. Tôi đã chọn CentOS là một hệ điều hành ổn định của nó tốt và tôi sử dụng nó trên máy chủ web của riêng tôi. Tôi có niềm tin lớn trong các công cụ cho công việc (mặc dù tôi đang áp dụng sử dụng nhanh nhất và dễ nhất cho bạn tâm lý ở đây), vì vậy nếu hệ điều hành X chạy mã của bạn nhanh hơn và nhiều hơn nữa hiệu quả sử dụng mà thay vào đó :)

Điều quan trọng là đảm bảo rằng máy ảo của bạn sử dụng DHCP, nếu không cho mỗi máy ảo mới sẽ cần phải được cấu hình riêng biệt mà là một cái gì đó chúng tôi không want.By sử dụng DHCP chúng ta không cần cấu hình các thiết lập mạng riêng biệt cho các máy công nhân, DHCP sẽ trao ra khu công nghiệp cho bạn. Vì vậy, bạn có thể sao chép máy ảo của bạn về văn phòng mà không cần lo lắng về việc thiết lập mỗi một trong những động (cải thiện khả năng mở rộng và làm giảm nhân viên hành chính).

Quá trình bạn nên nhằm mục đích để đạt được sẽ là để có được một máy vật lý mới, cài đặt VirtualBox, và sau đó triển khai khá nhiều hình ảnh ảo mà không có nhiều khác. Nó có thể là khôn ngoan để thiết lập tất cả các công nhân của bạn trên một subnet khác nhau để bạn có thể nhìn thấy bao nhiêu máy đang chạy. Bạn cũng sẽ cần phải thiết lập máy của bạn trên một hợp đồng thuê lâu dài hay không giới hạn cho thuê DHCP.

Làm thế nào để chạy Việc người lao động

Đây là một khu vực thú vị và có một số phương pháp hợp lệ để xử lý công việc người lao động. Ở đây tôi sẽ chỉ thảo luận về hai rõ ràng nhất:

  • Vĩnh viễn chạy kịch bản: Một kịch bản, có thể là một kịch bản, hoặc một kịch bản PHP được thực hiện một lần trên người lao động và chạy như một phần của một vòng lặp vô hạn. Tôi đã giảm giá phương pháp này là một trong những vụ tai nạn của kịch bản và có khả năng lao động của bạn sẽ ngừng chạy mà không có một số loại can thiệp.
  • Thực hiện kịch bản định kỳ dựa trên: Mỗi phút X cron daemon bắt đầu một cuộc gọi đến kịch bản của bạn để có được điều đi. Nếu không có kiểm tra một số điều này có thể dẫn đến nhiều bản sao nhiều nhân viên chạy kịch bản của bạn.

Quyết định của tôi là đi với cron khởi động một kịch bản mỗi minutes. 10 kịch bản của tôi thực hiện các nhiệm vụ sau đây:

  1. Có được một danh sách các tiến trình và grep 'php'. Nếu không tìm thấy sau đó tiếp tục.
  2. Gọi mã công việc của bạn, trong trường hợp này sẽ là một cái gì đó PHP
  3. Công nhân kịch bản hoàn thành chạy của nó
  4. Sẵn sàng để đi lại trên các cuộc gọi thích hợp tiếp theo

Kịch bản bash của tôi trông giống như sau:

  # / Bin / sh
 nếu ps ax | grep-v grep | grep php> / dev / null
 sau đó
     echo "công việc hiện đang được chế biến, xuất cảnh"
 khác
     echo "Công việc không chạy, bắt đầu ngay bây giờ"
     php yourJobProcessingScript.php
 fi 

Lưu ý: của tiếng vọng gần như hoàn toàn vô nghĩa, nhưng có thể giúp người tiếp theo đến cùng để thử và chỉnh sửa chúng.

Đó là kết luận các thiết lập của máy công nhân ảo, nhanh chóng, đơn giản và dễ dàng để sao chép cho mỗi mảnh của phần cứng mới được nhận. 'Thông minh' của hệ thống lưới điện thực sự không phải là hình tượng trong hệ điều hành, tất cả để làm với các mã được tạo ra công ăn việc làm quá trình, cấu hình việc làm, và đảm bảo rằng công việc chạy khi thích hợp (ví dụ như khi máy chủ nhàn rỗi ).

Thiết lập Windows Khởi công nhân

Nhiệm vụ đầu tiên là các lệnh cần thiết để chạy các máy ảo từ các cửa sổ dòng lệnh. Nếu bạn đã cài đặt VirtualBox trong vị trí mặc định và bạn đã đặt tên GridMachine nhân viên của bạn sau đó các lệnh cần thiết để tải lên nhân viên của bạn là:

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

Tuy nhiên để chạy các kịch bản trong một trạng thái 'không đầu', chúng ta cần phải sử dụng:

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

Điều này sẽ bắt đầu các máy ảo mà không có giao diện và cho phép nó để tiết kiệm nhà nước một cách duyên dáng. Đối số thứ hai sẽ tắt RDP để nó không mâu thuẫn với các cửa sổ RDP, hoặc cung cấp cho bạn một thông điệp về lắng nghe trên cổng 3389. Tên máy ảo là trường hợp nhạy cảm!

Tiếp theo, chúng tôi sẽ cần phải thiết lập các cửa sổ để khởi động máy ảo công nhân của chúng tôi khi máy tính đã được nhàn rỗi. Để làm điều này (trên Windows XP), bạn sẽ cần phải đi Start -> All Programs -> Accessories -> System Tools -> Scheduled Tasks như sau:

dự kiến ​​nhiệm vụ

Tiếp theo nhấp vào "Add Scheduled Task, tiếp theo là trình duyệt để thêm một chương trình tùy chỉnh. Điều hướng đến kịch bản VBoxManage của bạn và kích OK. Lịch trình công việc của bạn cho bất kỳ tùy chọn (chúng tôi sẽ thay đổi điều này trong một phút) và tiếp tục. Sau khi bỏ qua màn hình kế tiếp, các cửa sổ sẽ hỏi bạn người mà bạn muốn chạy nhiệm vụ này, tôi muốn đề nghị hoặc là 'Administrator' hoặc tạo ra một người sử dụng đặc quyền mới. Hãy nhớ chúng tôi không muốn can thiệp vào các tài khoản nhân viên tiêu chuẩn trên máy tính tại bất kỳ điểm nào. Kích tiếp theo và kiểm tra hiển thị tùy chọn nâng cao cho nhiệm vụ này.

Để cuối của hộp văn bản chạy thêm chuỗi 'startvm GridMachine của chúng tôi và đảm bảo rằng chạy chỉ khi đăng nhập còn lại unticked. Truy cập vào lịch trình công việc tiếp theo và thay đổi lịch trình thả xuống tùy chọn 'nhàn rỗi', chọn số lượng thời gian bạn muốn máy tính để được nhàn rỗi trước khi chuyển tới tab tiếp theo.

Cuối cùng, bỏ chọn các tùy chọn trong đó nêu dừng nhiệm vụ nếu nó đã được chạy X số lượng thời gian, nhưng không đánh dấu vào tùy chọn để ngăn chặn các nhiệm vụ nếu máy không còn nhàn rỗi.

lịch trình

Đó là sau đó cho các cửa sổ thiết lập máy chủ!

Tóm tắt thông tin

Trong phần này chúng tôi đã thiết lập một máy ảo hoạt động như một công nhân, cũng như cách thức mà chúng ta gọi và thực hiện các kịch bản xử lý công việc của chúng tôi (cho bản thân mình một kịch bản PHP). Từ đây chúng ta nhìn vào làm thế nào để thiết lập bản sao của chúng ta về cửa sổ để bắt đầu các máy ảo trong chế độ không đầu khi máy tính trở nên nhàn rỗi, và tiết kiệm nước khi người dùng tiếp tục sử dụng máy. Hy vọng rằng vào thời điểm này bạn đang nhìn thấy cách đơn giản nó là để thiết lập một hệ thống như vậy và đang nóng lòng muốn có được một số thí nghiệm sẽ cho mình!

Tiếp theo thời gian

Trong phần 4, chúng tôi sẽ xem xét sử dụng các công cụ để đảm bảo rằng bạn đang chạy phiên bản mới nhất của các nguồn mã và dữ liệu để kết quả thu được là luôn luôn up-to-ngày với các thông tin kinh doanh mới nhất và logic.

Văn phòng lưới máy tính sử dụng môi trường ảo - Phần 5

, thứ Sáu ngày 04 tháng 12 năm 2009 11:03

Giới thiệu

Tôi làm việc trong một công ty mà chúng tôi chạy nhiều công việc hàng loạt chế biến hàng triệu bản ghi dữ liệu mỗi ngày và tôi đã suy nghĩ gần đây về tất cả các máy ngồi xung quanh mỗi ngày và không làm gì trong vài giờ. Nó sẽ không tốt nếu chúng ta có thể sử dụng những máy móc để tăng cường sức mạnh xử lý của hệ thống của chúng tôi? Trong tập hợp các bài viết này, tôi sẽ xem xét các lợi ích tiềm năng của việc sử dụng một văn phòng lưới điện bằng cách sử dụng môi trường ảo hóa.

Trong phần 4, chúng tôi đã sử dụng các công cụ để đảm bảo rằng chúng tôi đang chạy phiên bản mới nhất của các nguồn mã và dữ liệu để kết quả thu được là luôn luôn up-to-ngày với các thông tin kinh doanh mới nhất và logic.

Trước khi triển khai

Trước khi triển khai hệ thống mạng lưới của bạn nếu có một điều bạn làm và một điều một mình, nó là điểm chuẩn hệ thống hiện tại của bạn! Không có vấn đề gì bạn nói với đồng nghiệp về bao nhiêu thêm công việc hệ thống của bạn sẽ làm gì trừ khi bạn có con số để sao lưu này lên bảo lãnh của bạn là không có gì. Vì vậy,

  • có bao nhiêu hồ sơ bạn có thể xử lý hiện tại? Mỗi ngày? Mỗi giờ?
  • Làm thế nào lâu nó thường xoay quanh một công việc?
  • Nhiều hơn năng lực bạn có?

Ngoài ra còn có thêm câu hỏi:

  • Nếu máy chủ xử lý của bạn (hoặc một trong các máy chủ xử lý của bạn) đi xuống như thế nào điều này sẽ ảnh hưởng đến khả năng của bạn, bạn sẽ được làm tê liệt?
  • Lợi thế gì bạn hy vọng / mong đợi để có được từ một hệ thống lưới điện?
  • Máy văn phòng của bạn có khả năng chạy các công việc?
  • Được của bạn (hoặc bạn công việc có thể được chuyển đổi) để wrok trong phong cách của chạy?

Điểm quan trọng cuối cùng là mất thời gian của bạn trên bất kỳ sự thay đổi lớn như thế này. Cập nhật mã xử lý của bạn để làm việc bằng cách sử dụng phương pháp mới, điểm chuẩn một lần nữa. Có thể thiết lập máy chủ xử lý của bạn để chạy một máy ảo, sau khi tất cả các máy chủ xử lý của bạn sẽ chỉ là một công nhân (chỉ là một rất mạnh tương đối). Cho phép các quá trình mới để giải quyết.

Triển khai

Đề nghị của tôi sẽ được bật vào ngày cuối tuần một văn phòng thực hiện tất cả các cài đặt và thiết lập. Làm điều này trước khi một kỳ nghỉ hai tuần và để lại nên nghèo khác chap để đối phó với những hậu quả có thể không ...

Triển khai cho một hệ thống như thế này cần được làm chậm. Mặc dù nó là tương đối đơn giản để thiết lập hệ thống này sẽ ảnh hưởng đến toàn bộ cơ sở hạ tầng văn phòng của bạn (tốt kỹ thuật số). Thứ nhất, tung ra một vài máy tại một thời điểm, lưu lượng truy cập mạng lưới giám sát, làm thế nào các máy chủ công nhân thực hiện trên cơ sở ngày-to-ngày. Bạn có thể cần phải thay đổi cấu hình công việc của bạn đáp ứng những phát hiện của bạn.

Một khi hệ thống đã giải quyết với một vài máy (cho phép nói rằng 10% của tất cả các máy văn phòng, tức là 5) giữ cho mạng lưới giám sát lưu lượng truy cập và máy chủ performance. điểm chuẩn một lần nữa, bây giờ bạn nên được xử lý công việc nhiều hơn 33% so với các tiêu chuẩn đầu tiên của bạn. Kiểm tra xem đây là như vậy, hoặc là bạn sẽ ít nhất là trong sân chơi bóng chày này. Nếu không, điều tra những gì đang xảy ra trước khi chuyển. Lặp lại chu kỳ này cho đến khi bạn hạnh phúc có tất cả các máy văn phòng mà không giết chết hiệu suất máy tính cá nhân hoặc nghiền mạng của bạn bị treo.

Tại tất cả các lần giữ điểm chuẩn, ngay cả sau khi tất cả các triển khai được thực hiện. Kiểm tra xem làm thế nào cập nhật mã mới ảnh hưởng đến tốc độ hệ thống của bạn, hãy kiểm tra tất cả các công nhân được báo cáo và xử lý công việc. Chậm (rất chậm) tăng cấu hình công việc của bạn để có được tốt nhất từ ​​công nhân và mạng lưới của bạn.

Dừng lại!

Điều gì sẽ xảy ra nếu bạn muốn ngăn chặn công nhân của bạn chạy ở một thời gian? Họ là tất cả ra khỏi đó, tái sinh, và cố gắng hết sức mình để xử lý dữ liệu như côn trùng đói. Câu trả lời có vẻ hiển nhiên, nhưng giá trị của nó chỉ thêm trong trường hợp bị bỏ qua của nó. Đơn giản chỉ cần chỉnh sửa kịch bản xử lý của bạn với một lối ra (0) hoặc chết () hoặc một số báo cáo khác để giết chết công việc xử lý của bạn. Một lý do quan trọng lý do tại sao chúng tôi luôn luôn cố gắng cập nhật kịch bản xử lý mới nhất trước khi chạy bất kỳ!

Trình diễn hệ thống

Để viết này tập hợp các bài báo ngắn, tôi tạo ra một mạng lưới rất nhỏ để chứng minh các công nghệ và phương pháp. Tôi đọc rất nhiều bài báo, hướng dẫn, và sử dụng các công cụ khác nhau để thiết lập và theo dõi những gì đang diễn ra. Không có nghĩa là tôi đi ra ngoài và bão hòa một văn phòng hoàn toàn với giao thông và cũng không có tôi có quyền truy cập vào một PC thông thường nhân viên để xem làm thế nào hiệu suất máy chủ đã bị ảnh hưởng.

Hệ thống trình diễn của tôi là thực sự rất khiêm tốn. Tôi sử dụng máy tính để bàn thường xuyên của tôi như là một máy chủ điều khiển công việc. Trên này, tôi đã cài đặt máy chủ MySQL cài đặt thiết lập là một bậc thầy trong nhân rộng, PHP , Â và SVN liên kết thông qua apache (để truy cập thông qua máy ảo công nhân).

Sau đó tôi tạo một máy công nhân CentOS trên VirtualBox trên một máy tính xách tay 6 năm tuổi XP cửa sổ. Tôi thiết lập dự kiến ​​nhiệm vụ theo quy định sau khi sao chép máy ảo vào máy và để cho nó đi.

Các máy ảo được thiết lập với PHP, lật đổ, và mySQL. Tôi đã kiểm tra một chi nhánh có tên là 'công nhân' từ kho lưu trữ máy chủ kiểm soát công việc của tôi và chắc chắn rằng nó có thể được cập nhật bằng cách sử dụng 'svn các bản cập nhật'. Tiếp theo, tôi thiết lập mySQL như một nô lệ và kiểm tra dữ liệu đã được sao chép từ mySQL trên máy chủ kiểm soát công việc xuống máy ảo công nhân. Sau khi tất cả những điều này, tôi thiết lập các kịch bản bash và công việc cron.

Kịch bản xử lý của tôi về cơ bản đã đi dọc theo dòng này (rất đơn giản công cụ):

  • Đọc trong lĩnh vực tên
  • Tính số lượng tên tương tự trong một bảng từ các nguồn dữ liệu được tổ chức trên máy ảo
  • Tính số lượng các tên như tên bởi không gian ở trên, nhưng chia (tức là tên đầu tiên, giữa, họ)
  • Lặp đi lặp lại quá trình này 1.000 lần

Mỗi công việc mất khoảng 20 phút để chạy. Tại một điểm tôi mở ra nhiều bản sao của máy ảo công nhân trên máy tính xách tay các cửa sổ và theo dõi các công việc được kiểm tra bằng cách mỗi địa chỉ IP công nhân. Tại thời điểm này, tôi cũng xác nhận rằng bản sao tự động khởi động lại.

Để các máy tính xách tay nhàn rỗi kết quả trong một công nhân bắt đầu xử lý các việc làm từ các máy chủ điều khiển công việc. Khi trở lại sử dụng máy tính xách tay có một sự chậm trễ khoảng 30-60 giây, đây là một số tiền hợp lý của thời gian và nhân viên sẽ cần phải được thực hiện nhận thức được rằng máy tính của họ có thể tạm dừng một thời gian ngắn khi quay trở lại máy. Máy mới hơn có thể không có một tạm dừng này dài. Lợi ích của số lượng chế biến thực hiện bởi các máy này trong thời gian nhàn rỗi sẽ nhiều hơn nhân viên phải chờ đợi một thời gian ngắn (1 phút) đến máy của họ một buổi sáng (tôi thường xuyên chờ đợi lâu hơn cho Windows Defender cập nhật diễn ra) cung cấp đã được thực hiện nhận thức được điều này (thời gian hữu ích để lấy một cà phê buổi sáng).

Nói chung tôi cảm thấy tự tin rằng mình đã chứng minh các công nghệ có thể được sử dụng để tạo ra một hệ thống như vậy. Tôi đã chỉ ra rằng một hệ thống như vậy không làm việc trên một quy mô nhỏ (rất) và với một số thử nghiệm có thể được thu nhỏ sử dụng các nguồn tài nguyên của máy của một văn phòng. Nếu tôi không nhận được điểm để làm điều này tôi sẽ rất quan tâm để biết / thấy khi một người nào khác không.

Kết luận / Đánh giá

Rõ ràng bước tiếp theo sẽ là thực sự có được một ví dụ thế giới thực và bắt đầu triển khai một hệ thống như thế này trong một môi trường văn phòng và xem những gì sẽ xảy ra. Yêu cầu một doanh nghiệp cam kết này mà không cần một công ty đường mòn rực để chứng minh công nghệ và hiệu quả có thể là một chút khó khăn. Grid / phân phối máy tính là rất phổ biến là một số vòng tròn và có một số ứng dụng lớn (BIONC, SETI @ Home, Folding @ Home, vv). Tôi không, tuy nhiên, tìm một quy mô nhỏ hơn và hệ thống đơn giản như thế này trong các tìm kiếm có thể được triển khai trong một môi trường văn phòng.

Tôi tạo ra một hệ thống về cơ bản miễn phí bằng cách sử dụng phần mềm mã nguồn chủ yếu là mở và các công cụ có sẵn trong hầu hết các văn phòng. Các công nghệ về cơ bản đã được chứng minh và cho thấy để thực hiện và làm việc như mong đợi. Hy vọng rằng tôi có thấy rằng công việc không nhiều và với một thiết lập rất đơn giản, bạn có thể triển khai một hệ thống văn phòng điện toán lưới là mạnh mẽ, giá rẻ, Â và khả năng mở rộng tất cả cùng một lúc.

Khi một hệ thống và chạy trên đó gần như là không có kết thúc với số tiền tùy biến và cải tiến bạn có thể thực hiện. Đối với ví dụ số liệu thống kê điểm chuẩn / có thể dễ dàng được thêm vào hiển thị giá trị của hệ thống như vậy mỗi ngày. Máy mới có thể được thêm vào một cách nhanh chóng và dễ dàng như khi họ đến với các nâng cấp phần cứng hiện củng cố sức mạnh xử lý của bạn.

Tôi hy vọng bạn đã rất thích đọc loạt bài này và cho bạn thực phẩm cho các tư tưởng về một hệ thống mạng lưới văn phòng. Các giải pháp trình bày ở đây sẽ không nhất thiết phải làm việc trong mọi tình huống nhưng phải được thích nghi để cho phép bạn để có được xử lý dữ liệu của bạn thực hiện bằng cách sử dụng giải pháp của riêng bạn.

Xin vui lòng gửi cho tôi bất kỳ ý kiến, chỉnh sửa, hoặc cải tiến và tôi sẽ làm hết sức mình để giữ cho bài viết này cập nhật cho phù hợp.













Panorama Theme theo Themocracy

6 khách truy cập trực tuyến tại
5 khách, 1 bots, 0 thành viên
Max khách truy cập hôm nay: 13 lúc 09:36 am UTC
Tháng này: 40 23-05-2012 03:33 am UTC
Năm nay: 69 27-02-2012 09:56 am UTC
Tất cả thời gian: 130 28-03-2011 10:40 pm UTC