PDA

View Full Version : Tối ưu tốc độ cho server và tăng tốc diễn đàn VBB - P1



minhhn0205
06-09-2009, 08:36 PM
vBulletin là một hệ thống diễn đàn được sử dụng khá phổ biến ở những website thương mại trên thế giới và cũng đặc biệt là ở Việt nam. vBulletin được yêu thích không phải vì tính dễ dùng và đa năng về cấu hình của nó, mà còn nhờ vào sự bảo mật tốt và ít lỗi. Vì hệ thống forum này là có phí nên hầu như khó có cho những webmaster thông thường sử dụng được, hơn nữa chi phí mua nó cũng không rẻ. Shacker cũng không rõ nhờ đâu mà nhiều diễn đàn Việt nam sử dụng VBB quá trời ^_^. Sao cũng được, vì đó không phải là trọng tâm của bài viết này. Trong tài liệu về VBB lần này, Shacker muốn tổng hợp lại kinh nghiệm để tối ưu tốc độ và tính năng cho vBulletin Forum, giúp cho diễn đàn bạn chạy ổn định và ít lỗi hơn.

I/ Hệ thống diễn đàn vBulletin

vBulletin là một hệ thống diễn đàn được sử dụng khá phổ biến ở những website thương mại trên thế giới và cũng đặc biệt là ở Việt nam. vBulletin được yêu thích không phải vì tính dễ dùng và đa năng về cấu hình của nó, mà còn nhờ vào sự bảo mật tốt và ít lỗi. Vì hệ thống forum này là có phí nên hầu như khó có cho những webmaster thông thường sử dụng được, hơn nữa chi phí mua nó cũng không rẻ. Shacker cũng không rõ nhờ đâu mà nhiều diễn đàn Việt nam sử dụng VBB quá trời ^_^. Sao cũng được, vì đó không phải là trọng tâm của bài viết này. Trong tài liệu về VBB lần này, Shacker muốn tổng hợp lại kinh nghiệm để tối ưu tốc độ và tính năng cho vBulletin Forum, giúp cho diễn đàn bạn chạy ổn định và ít lỗi hơn.

II/ Thiết lập từ AdminCP

Các thiết lập trong mục này phần lớn bạn sẽ tìm thấy từ AdminCP > vBulletin Options > vBulletin Options. Đây sẽ là những cách cấu hình cơ bản của chính forum để nó chạy nhanh và giảm yêu cầu thực thi lệnh từ phía server ( Một số host deletes các accounts dùng VBB vì tốn quá nhiều bộ nhớ lẫn CPU cho server cũng vì lý do này ). Bây giờ ta hãy bắt đầu.

A.General Settings

1-Use Forum Jump Menu : Tắt tính năng này sẽ lọai bỏ menu thả xuống hiển thị danh sách các forum trong diễn đàn bạn. Nó sẽ tiết kiệm cho bạn dung lượng của cả trang, và giới hạn bới số câu lệnh truy xuất và database.
2-Add Template Name in HTML Comments : Giảm bớt bandwidth cho đường truyền vì những câu chú thích không quan trọng trong mã nguồn sẽ được lọai bỏ.
3-Disable AJAX Features : Công nghệ Ajax sẽ giảm rất nhiều gánh nặng cho server và client vì không cần tải lại cả trang. Tiếc thay, nó chưa hòan chỉnh với tiếng Việt và nhiều lúc sẽ bị đứng yên. Bạn nghĩ nên cho hiệu lực hay không? Shacker đã tắt tính năng này trên diễn đàn mình.

B.Cookies and HTTP Header Options

1-GZIP HTML Output : Những host nào chạy trên nền linux đa số điều hỗ trợ GZIP, một tính năng nén dữ liệu khá tiện lợi. Nó sẽ giảm bớt dung lượng trang tải về, tăng tốc duyệt trang cho diễn đàn bạn. Điền vào thông số từ 1-9 để thiết lập mức độ nén, càng lớn thì server sẽ nén nhiều hơn, nhưng client sẽ tốn thời gian hơn để giải nén. 1 là tốt nhất.
2-Add No-Cache HTTP Headers : Không cho lưu trang trên máy khách. Đồng nghĩ với việc trình duyệt phải yêu cầu lại nội dung một trang đã có sẵn trên máy ( và tất cả hình ảnh của nó) mỗi khi bạn chuyển từ link này sang link khác, tốn rất nhiều bandwith. Chọn No sẽ cho giải quyết được vấn đề này.
3-Remove Redirection Message Pages : Mỗi khi đăng nhập hay gửi bài VBB sẽ hiện lên thông báo trước khi chuyển trang. Tuy hay nhưng khá bất tiện và tốn thời gian lẫn bandwidth của host.

C.Server Settings and Optimization Options

1-Cached Posts Lifespan : Lưu trữ các bài viết một cách tạm thời lên host. Nó giúp bạn giảm truy vấn vào database, tăng tốc độ duyệt forum. Tuy nhiên sẽ tốn dung lượng của host khá nhiều. Tùy vào hòan cảnh của bạn mà hãy chọn Yes hay No.
2-Update Thread Views Immediately và Update Attachment Views Immediately : Không nhất thiết phải là Yes. Nhưng đối với các diễn đàn lớn việc hiệu lực hai tính năng này sẽ làm forum rất chậm và database sẽ bị quá tải xử lý. Nó dùng để cập nhật lượt đọc và tải file từ bài viết.

D.Style & Language Settings

1-Store CSS Stylesheets as Files? : Lưu trữ thông tin về cách dàn trang của diễn đàn ( Style - Skin - Theme - Template ...). Nếu không chứa vào 1 file để truy cập nhất định từ mỗi trang, VBB sẽ đưa nó vào mã nguồn chính và tăng tiến trình xử lý của mỗi trang hơn nhiều lần. Nếu bạn chọn Yes bạn phải chắc chắn thư mục vbulletin_css trong clientscript được CHMOD là 777.

E.Message Posting and Editing Options

1-Quick Reply : Hiệu lực trả lời nhanh với Yes, Click Not Required sẽ tiết kiệm cho bạn 1 trang trả lời trong hầu hết các trường hợp.

F.Message Posting Interface Options

1-Smiliebox Total Smilies : Càng nhiều mặt cười sẽ giảm tốc độ và tăng dung lượng trang.

G.Message Searching Options

1-Automatic Similar Thread Search : Tắt tính năng hiện những bài viết cùng thể lọai trong 1 chủ đề. Bạn sẽ tiết kiệm được sức lực cho server khá nhiều. Nếu bạn dùng host free, Shacker nghĩ rằng bạn nên tắt nó đi.

H.Forums Home Page Options

1-Display Logged in Users? Yes, Random listing to all visitors - Hiển thị các thành viên đăng nhập vào diễn đàn nhưng không cần xếp theo thứ tự. Tiết kiệm được CPU load tối đa khi bạn tắt nó đi, nếu không thì dùng như Shacker đề nghị vậy.
2-Display Today's Birthdays? / Display Custom Holidays : Nếu bạn không quan những thông tin về ngày sinh hay lễ lộc hiển thị trên trang chủ, bạn có thể tắt nó đi. Thiết lập này khá tiện lợi vì nó giảm bớt query vào database cho form.

I.Thread Display Options (showthread)

1-Show Users Browsing Threads : cũng tương tự như H.1 , nhưng thiết lập này cho phép hiện hay không hiện những thành viên đang đọc bài viết.
2-Check Thread Rating / Check Thread Subscription : Cả 2 thiết lập này nên tắt đi vì thực sự theo nghiên cứu nó không quan trọng và tốn sức lực server rất nhiều. ( kiểm tra thường xuyên đánh giá bài viết / đăng ký theo dõi )

J.Thay vì ở vBulletin Options bạn vào Usergroups > Usergroup Manager > Unregistered / Not Logged In

1-Can Search Forums / Can Use Boolean Search / Can View Who's Online : Giảm những tác vụ không cần thiết của server chỉ để đáp ứng yêu cầu của Guest tham quan.

Thế là bạn đã hòan tất việc thiết lập những giá trị cơ bản trong cấu hình cho VBB Forum. Shacker tin chắc diễn đàn của bạn ít nhất cũng đã nhanh hơn được ít nhiều. Tiếp theo sau là những cách tối ưu khác cũng với riêng kinh nghiệm của shacker, bạn có thể thực hiện theo, nhưng nếu bất kỳ vấn đề nào xảy ra đối với diễn đàn bạn, Silvery hat hacker sẽ không chịu trách nhiệm.

III/ Lưu trữ thiết lập diễn đàn vào file trên host.

Mỗi lần tạo trang forum sẽ đọc các thiết lập được lưu trữ trong database về cách hiển thị dữ liệu, trình bày trang ... Giảm bớt những queries vào databse và chỉ dành để trích xuất những dữ liệu quan trọng thì sẽ nhẹ gánh rất nhiều cho diễn đàn bạn. Để hiệu lực cho phép thiết lập này chạy, bạn hãy CHMOD cho tập tin datastore_cache.php trong thư mục includes\datastore thành 777. Sau đó bạn mở tập tin config.php của diễn đàn trong includes để thực hiện quá trình thay đổi. Tìm dòng

// $config['Datastore']['class'] = 'vB_Datastore_Filecache';Thay bằng

$config['Datastore']['class'] = 'vB_Datastore_Filecache';Save và upload lại file config.php.lên host của bạn.

Từ giờ trở đi các thiết lập trong diễn đàn sẽ được lưu vào file, giảm tải cho database của forum và VBB sẽ truy xuất thông tin cấu hình trang nhanh hơn.

minhhn0205
06-09-2009, 08:37 PM
IV/ HELLCATs Realtime Page Compressor MOD

Nén trang lại trước khi tải về client. Đây thật sự không phải là một ý kiền dở hơi! Trang của bạn sẽ được nén bớt 5%~20% so với dung lượng gốc. Vừa tiết kiệm được bandwidth, vừa giúp khách duyệt trang dễ dàng và không phải đợi quá lâu. Shacker đã cài mod này thử trên diễn đàn mình và thấy nó họat động khá ổn, lại không xung đột với các mod khác, vì nó không đụng đến những thành phần này.

Bạn có thể tải mod này về từ box hack mod cho VBB 3.6.x của diễn đàn Shacker và tiến hành Import như các mod khác. Sau đó bạn vào AdminCP > vBulletin Options > vBulletin Options > Realtime Page Compressor Options

Bạn không cần phải chỉnh gì nhiều, chỉ có 3 options lần lượt là :
+ Hiệu lực tính năng nén trang
+ Cách hiển thị thông số nén
- Do NOT display stats ( ko hiển thị )
- Display stats at the bottom of each page (hiển thị dưới trang)
- Use HTML-Tag for display (Tùy ý - Bạn phải đặt thẻ <cmpstat /> vào vị trí nào đó trong trang mà bạn muốn hiển thị)
+Show compression stats to admins only? Chỉ hiện thông số nén cho admin ?

Đó là tất cả bạn cần làm

V/ Plugin Based Template Cache

1 trang được tạo cho 1 khách truy cập vào diễn đàn. Nó lại được tạo lần nữa cho một người khác xem. Trên diễn đàn bạn có 10 người, nghĩa là 1 trang sẽ được tạo 10 lần cho họ xem trong khỏang vài giây hoặc vài phút tùy nội dung. Giả sử có 300 người truy cập thì rõ ràng đây là một gánh nặng cho server nữa. Và bạn biết rằng 1 khách vào forum thì hiển nhiên họ sẽ không truy cập chỉ 1 trang.. Trung bình 1 khách vào forum họ sẽ duyệt 3-5 trang. Shacker đang buồn thử làm một bài tính đơn giản dựa trên 1 forum bình thường ( 50-100 members - khỏang 20 người online - mỗi người xem 3 trang )

20 x 20 x 3 = 1200 trang (me. o*i)

Câu hỏi cho vấn đề này là làm sao ta có thể chỉ dùng 1 trang chung cho một và tất cả những người khác khi họ muốn xem nó ? Hướng dẫn quyết dễ dàng hơn nếu bạn dùng Plugin Based Template Cache MOD. Cải tiến này sẽ thêm tính năng đặt biệt này cho diễn đàn của bạn. Chỉ với 3 bước đơn giản:

+ Tải MOD này về ( cũng có sẵn trong box hack mod cho VBB 3.6.x của diễn đàn )
+ Tạo thư mục tên templates từ thư mục gốc của forum và CHMOD nó thành 777
+ Import tập tin product.xml
+ Copy template_cache.php vào thư mục gốc của diễn đàn.
+ Xong

Bạn có thể chỉnh các thông số từ AdminCP > vBulletin Options > vBulletin Options > Plugin Based Template Cache , tuy nhưng Shacker thấy đây không phải là điều cần thiết. Bạn kiểm tra lại lần nữa để xem MOD này có chạy không bằng cách duyệt trang và xem thư mục Templates có hiện ra những file có tên fe2acf36e56a4a2f7fbb4d5d4d0cd67e.php , ad91f97a5a13eeb3fbafba0455476e55.php ... hay không. Nếu có tức là mọi thứ họat động tốt rồi.


[Nguồn: Silveryhat]