Cài đặt tối ưu cho máy chủ ảo (VPS) trên nền Hyper-V

Đặt Website trên Shared Hosting (máy chủ chia sẻ) bạn không cần phải quan tâm đến việc phần mềm trên đó cài đặt như thế nào, miễn sao Website bạn chạy tốt. Shared Hosting phục vụ rất nhiều khách hàng, nhiều dạng Website khác nhau, việc cài đặt ứng dụng trên máy chủ Shared Hosting đòi hỏi sự cân nhắc, kiểm tra kỹ lưỡng trước khi đưa vào sử dụng.

Là người đi thuê Hosting, bạn cũng đã có kiến thức về việc cài đặt phần mềm. Các ứng dụng dễ bị xung đột với nhau, đặc biệt là khi mục đích phát triển ứng dụng là để chạy trên nhiều nền tảng khác nhau. Các ứng dụng dạng dịch vụ trên máy chủ như PHP, FastCGI, Apache… khi cài đặt lên máy chủ nền Windows thường gây cho bạn không ít khó khăn.

Đa số các ứng dụng thông thường đều có thể hoạt động tốt với VPS. Khi sử dụng VPS, bạn phải quan tâm đến việc làm cho các ứng dụng trên đó hoạt động cùng nhau – không gây xung đột lẫn nhau. Đặc biệt, VPS là dạng máy chủ ảo nên nó bị giới hạn dung lượng đĩa cứng và bộ nhớ. Vậy bạn nên cài đặt như thế nào để VPS chạy hiệu quả?.

Bỏ đi những Service không cần thiết

Khi cài đặt Windows, bạn có thể thấy nó bật sẵn một số Service hỗ trợ mà bạn có thể tắt nó một cách an toàn. Chúng tôi từng cài một phiên bản Windows 2003 Standard, IIS 6, FTP và SMTP chỉ chiếm có 90 MB RAM.

Một số Service sau đây bạn có thể tắt:

* Application Experience Lookup Service: Dùng để phát hiện mức tương thích của các ứng dụng (chỉ những sản phẩm của Microsoft). Bạn có thể tắt sau khi đã cài đặt xong tất cả ứng dụng.
* Error Reporting Service: Thông báo lỗi phản hồi về cho Microsoft
* FTP Publishing Service: Dịch vụ FTP đi kèm với Internet Information Server (IIS)

* Indexing Service: Tìm kiếm File nhanh (chỉ có tác dụng với Explorer và một số ít ứng dụng khai thác nó)
* IPSEC Services: Bạn vẫn có thể dùng Windows Firewall cho dùng tắt dịch vụ này
* Computer Browser
* Simple Mail Transfer Protocol (SMTP): Dùng để gởi Email từ Website dùng ASP
* Windows Audio
* Performance Logs and Alerts
* Printer Spooler
* Wireless Zero Configuration

Database Server dành cho VPS

Không phải lúc nào bạn cũng cần dùng đến Database Server. Nếu bạn tự phát triển Website, bạn có rất nhiều lựa chọn: SQL Server, MS Access, MySQL, Firebird, PostgreSQL, XML (một số Portal, Blog, Wiki được lập trình bằng ASP.NET chỉ cần dùng tập tin XML)…

Database Server được thiết kế để thuận tiện trong lưu trữ và khai thác dữ liệu có cấu trúc. Năng lực của nó tùy thuộc vào tốc độ xử lý của CPU và dung lượng bộ nhớ. Vậy bạn nên lựa chọn thế nào trong khi VPS bị giới hạn 2 tiêu chí này? Đa số khách hàng khi thuê Hosting thường đã có Website, vậy họ lựa chọn như thế nào?

1. Cài đặt Database Server lên VPS
* Ưu điểm: Dễ khai thác, bảo mật và tiết kiệm chi phí

* Nhược điểm: Tốc độ tùy thuộc vào VPS của bạn. Nếu dung lượng Database của bạn lên đến 500 MB, và Website có nhiều lượt truy cập thì bạn nên suy nghĩ lại. Tốc độ Database Server còn cũng phụ thuộc vào tốc độ đọc/ghi của đĩa cứng (đối với VPS là đĩa cứng ảo – không nhanh như đĩa cứng vật lý).

2. Thuê Shared Hosting có Database
Hiện nay Hosting ở Việt Nam chưa có dịch vụ cho thuê máy chủ Database, dịch vụ này ở nước ngoài giá cũng khá cao do chi phí bản quyền và đầu tư Server/Backup. Tuy nhiên bạn có thể đối phó bằng cách duy trì một gói dịch vụ Shared Hosting giá rẻ, chỉ để dùng Database.
* Ưu điểm: Chi phí thấp, hiệu quả khá tốt
* Nhược điểm: Phụ thuộc vào một máy chủ khác và đường truyền từ VPS của bạn đến máy chủ đó.

3. Thuê thêm VPS để chạy Database Server
Nghe có vẻ điên nhưng cũng không ít người dùng cách này.

Cho dù chọn giải pháp bạn cũng nên nhớ rằng hiệu năng của Database Server ảnh hưởng tốc độ nạp trang của Website, đơn giản vì mỗi khi trình duyệt yêu cầu trang nào, Website sẽ kết nối Database nhiều lần để hoàn tất việc xuất trang đó.

Sử dụng Microsoft SQL Server

Bạn nên chọn các phiên bản miễn phí và nên chọn phiên bản mới nhất. Các bản mới nhất thường có ưu điểm là bảo mật tốt hơn và hiệu năng tốt cao hơn – dĩ nhiên là cũng hơi tốn bộ nhớ và dung lượng đĩa cứng thêm một chút. Cho đến thời điểm của bài viết này, bạn có thể chọn:

* SQL 2005 Express – Service Pack 3 hoặc
SQL 2008 Express – Service Pack 1: Nếu bạn chỉ dùng căn bản
* SQL 2005 Express with Advanced Sevices – Service Pack 3 hoặc

SQL 2008 Express – Service Pack 1: Nếu bạn cần dùng thêm Analysis và Report.

Để quản trị SQL Server, bạn có thể cài luôn bản SQL Server 2008 Management Studio (mặc dù dùng SQL Server 2005) để khai thác thêm các tính năng quản trị. Để cài SQL Express 2008, bạn cần cài .NET Framework 3.5 Service Pack 1 + Windows Installer 4.5.

Nếu muốn tiết kiệm bạn có dùng ngay Management Studio trên máy tính riêng của mình, bản Management Studio 2008 chiếm gần 200MB sau khi cài đặt. Để kết nối với SQL Express từ xa, bạn cần thao tác như sau:

* Remote vào VPS, mở Sql Server Configuration Manager
* Chọn SQL Server Network Configuration, chọn tiếp Protocols for SQLEXPRESS (hoặc tên do bạn cho khi cài đặt)
* Nhấn Double-Click lên khung bên phải ở mục TCP/IP để mở bảng TCP/IP Properties

o Đặt giá trị Enabled = Yes
o Listen All = Yes
o IP Addresses –> IPAll –> TCP Port = 1433
* Nhấn OK và khởi động lại SQL EXPRESS hoặc khởi động lại VPS.

Sử dụng MySQL

MySQL miễn phí, dùng ít tài nguyên hệ thống nhưng nếu không cấu hình đúng cách bạn sẽ không thể tối ưu VPS của bạn một cách tốt nhất. Trong tập tin cấu của MySQL bạn có thể điều chỉnh như sau:

* innodb_flush_log_at_trx_commit
o Giá trị = 0: InnoDB sẽ đẩy log xuống đĩa sau 01 giây, khi transaction kết thúc.
o Giá trị = 1: Bạn nên chọn giá trị này nếu Website của liên tục update nhiều dữ liệu và giảm thiếu khả năng mất mát dữ vì log sẽ được ghi xuống đĩa ngay khi transaction kết thúc.
o Giá trị = 2: Transaction Log sẽ được đẩy vào vùng cache tạm do hệ điều hành quản lý và được ghi xuống đĩa vào lúc hệ điều hành quyết định.
* key_buffer_size
o Đây là thông số quan trọng khi bạn sử dụng bảng MyISAM . Bạn nên đặt giá trị này tương đương với 30-40% tổng dung lượng bộ nhớ của VPS. Tuy nhiên, giá trị đúng nhất tùy thuộc vào kích thước indexes, mức tải và kích thước dữ liệu.
o Điều bạn cần nhớ là MyISAM sử dụng bộ đệm của HĐH để làm bộ đệm cho dữ liệu cần truy xuất. Chính vì vậy bạn cần dành vùng nhớ cho nó một cách phù hợp. Hãy cho Website chạy và điều chỉnh giá trị này để so sánh.

* innodb_buffer_pool_size
o Thông số này quan trọng khi bạn dùng bảng InnoDB. Bảng dạng này nhạy cảm với kích thước vùng đệm hơn là MyISAM. MyISAM có thể làm việc bình thường ngay cả khi key_buffer_size lớn hơn kích thước dữ liệu.
o Vùng đệm của InnoDB dùng cho cả dữ liệu và indexes vì vậy bạn không cần dành vùng nhớ thêm cho HĐH, bạn có thể cấu hình giá trị tương đương 70-80% tổng dung lượng bộ nhớ của VPS nếu bạn thật sự cần hiệu năng của Database mạnh nhất.

Nguyễn Thăng Long (Kenhgiaiphap.vn)

About Tony Nguyễn
Tôi tên Tony tự Tèo trú tại thôn Tám, Trảng Thanh tỉnh Thừa Thiên. Thưở thiếu thời trí tuệ tôi thường thường, tuy thế tính tình thật thà thẳng thắng, thích thi thơ ...

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: