Blog Tối ưu máy chủ Windows

Khai thác máy chủ Server Dedicated và VPS không đơn giản như việc đi thuê Web Hosting, nhất là khi nhà cung cấp dịch vụ hỗ trợ hạn chế đối với dịch vụ này. Bạn không thể đòi hỏi nhà cung cấp hỗ trợ từng Website của bạn bên trong Server, vì điều này đi ngược với chính sách dịch vụ của họ. Khi quyết định thuê máy chủ, bạn cần phải có kinh nghiệm quản trị hệ điều hành để tự khắc phục sự cố khi xảy ra.

Đặ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ả?.

1. 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ù 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

2. 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?

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ý).
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ủ đó.
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 đó.

2.1. 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. Truy cập Website của SQL Server để tìm phiên bản mới nhất: http://www.microsoft.com/en-us/sqlserver/default.aspx.

Để quản trị SQL Server, bạn có thể cài luôn bản Management Studio mới nhất (mặc dù đang dùng SQL Server cũ hơn) để khai thác thêm các tính năng quản trị. Nhớ rằng để 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 không gian trên VPS, 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
Đặt giá trị Enabled = Yes
Listen All = Yes
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.

2.2. 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
Giá trị = 0: InnoDB sẽ đẩy log xuống đĩa sau 01 giây, khi transaction kết thúc.
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.
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
Đâ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.
Đ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
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.
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.

 

Bạn đang quan tâm tới dịch vụ của chúng tôi? Hãy chia sẻ mong muốn của bạn để chúng tôi phục vụ bạn!