Hiệu năng của ứng dụng (J2EE) P1

Thời gian vừa rồi tôi có làm việc với một vài dự án mà hiệu năng của ứng dụng là một trong những vấn đề quan trọng nhất của hệ thống (search engine) và một vài dự án đang gặp rắc rối qua lớn với vấn đề hiệu năng khi dữ liệu của hệ thống lớn (enterprise content management) nên tôi sẽ viết một số bài liên quan đến vấn đề này.

Bài viết đầu tiên sẽ giải thích câu hỏi cơ bản : hiệu năng của ứng dụng là cái gì?

Hiệu năng của ứng dụng bao gồm các yếu tố cơ bản sau: thời gian đáp ứng người dùng, lưu lượng đáp ứng hệ thống, việc sử dụng tài nguyên của hệ thống và khả năng sẵn sàng của hệ thống.

Thời gian đáp ứng người dùng (người dùng cuối)

Thời gian đáp ứng chính là cái cơ bản nhất mà người dùng cảm nhận được về hiệu năng của hệ thống, do đó mặc dù những phép đo đạc khác cũng quan trọng nhưng thời gian đáp ứng người dùng là quan trọng nhất. Thời gian đáp ứng người dùng chậm có thể dẫn tới:

  • Mất khách hàng trong các ứng dụng B2C
  • Giảm năng suất trong những ứng dụng nội tại của doanh nghiệp
  • Mất sự tín nhiệm và tin cậy trong ứng dụng B2B

Chỉ cần thời gian đáp ứng nhanh hơn một ít cũng ảnh hưởng lớn đến cảm giác của người dùng về tốc độ hệ thống. Những tiêu chuẩn đánh giá hiệu năng khác sẽ bàn tới ở đây được đo đạc và cân nhắc để chắc chắn rằng thời gian đáp ứng người dùng vẫn có thể chấp nhận được trong những tình huống khác nhau.

Chúng ta có thể đo đạc thời gian đáp ứng người dùng bằng 2 cách sau: chủ động theo dõi qua những giao dịch giả lập và theo dõi thụ động.

Một giao dịch giả lập bào gồm một chuỗi các yêu cầu dịch vụ để thi hành một đơn vị chức năng nghiệp vụ, giao dịch giả lập này được thực thi trong một khoảng thời gian. Thời gian đáp ứng của những giao dịch giả lập được ghi lại với 2 mục đích: ghi nhận xu hướng và cảnh báo. Phân tích xu hướng của giao dịch giả lập cung cấp cho chúng ta biết xu hướng về hiệu năng của hệ thống tác động đến người dùng như thế nào trước khi người dùng bị tác động bởi điều đó. Bạn có thể thấy CPU và bộ nhớ được sử dụng có xu hướng tăng lên và những xu hướng này cần được quan tâm, vì khi đó nó sẽ ảnh hường đến người dùng. Giao dịch giả lập cũng đóng vai trò hoàn hảo để cho ta những cảnh báo liên quan đến hiệu năng của ứng dụng. Chúng ta có thể có những trigger để khi hiệu năng một dịch vụ của ứng dụng đặt tới một mức nào đó thì hệ thống sẽ tự động thông báo đến người quan trị hệ thống. Cảnh báo có thể đơn giản là thông báo đơn giản, email … khi hiệu năng hệ thống đạt tời một mức nào đó hệ thống sẽ tự phần tích những thông tin nó có để đưa ra những thông tin chi tiết hơn.

Trong những ứng dụng lớn, giao dịch giả lập được thực hiện từ những vùng địa lý khác nhau mục đích là để hiểu rõ thời gian đáp ứng khác nhau như thế nào ở những địa phương khác nhau. Trong một vài trường hợp khi một tổ chức có nhiều ứng dụng được đặt ở những mạng vật lý khác nhau, khi đường truyền chậm chúng ta có thể cung cấp các giải pháp liên quan đến chuyển hướng yêu cầu. Giao dịch giả lập thường được hiểu là theo dõi chủ động bởi vì nó tiến hành động với ứng dụng, một phương pháp hiệu quả khác để đo thời gian đáp ứng người dùng là theo dõi bị động. Theo dõi bị động theo dõi những yêu cầu của người dùng real-time khi nó được thực thi. Kết quả là nó cung cấp cho ta một bức tranh tổng quát và thực tế hơn về thời gian đáp ứng người dùng từ đó ta có thể tính toán để đưa ra những dữ liệu thực tế như thời gian đáp ứng lớn nhất, thời gian đáp ứng nhỏ nhất, trong bình và etc… Theo dõi bị động giúp tìm ra những lỗi mà chỉ xảy ra với một vài yêu cầu nghiệp vụ nhất định với những người dùng nhất định.

Lưu lượng đáp ứng

Lưu lượng đáp ứng xác định số công việc mà hệ thống có thể hoàn thành trong một khoảng thời gian, trong ứng dụng J2EE chúng ta thường xác định lưu lượng đáp ứng bằng số yêu cầu mà chúng ta có thể xử lý trong một giây. Mục tiêu của một hệ thống là tăng tối đa lưu lượng đáp ứng và đo bằng số yêu cầu đáp ứng đồng thời nhận được. Lưu lượng đáp ứng cao là phục vụ yêu cầu đáp ứng nhanh và hiệu quả, nó phản ánh thời gian đáp ứng nhanh. Lưu lượng đáp ứng cao cũng làm nổi bật hiệu quả chung của toàn hệ thống.

(to be continued)

HTML 5 - Đặc tả mới - kỷ nguyên mới?

Cách đây khoảng hơn một năm mình cũng đã có nói chuyện với một vài người đồng nghiệp về sự hạn chế của chuẩn HTML 4.  Phiên bản 4 đã ra đời cách đấy hàng chục năm thời mà các khái niệm như AJAX chưa được biết đến và google còn chưa ra đời. Sự thịnh hành của AJAX và Rich Internet Application (RIA) trong thời gian vừa qua chính là để bù đắp vào những điểm thiếu và yếu của phiên bản 4. Hiện giờ đã có quá nhiều AJAX và RIA framework, mỗi cái đều được thiết kế và thi hành theo những kiểu khác nhau. Hy vọng là các đặc tả của bản HTML5 có thể bù đắp được một phần nào những yếu kém này. Nếu đặc tả mới đủ mạnh  thì mảnh đất cho các framework hiện tại sẽ bị thu nhỏ lại do đó các framework hiện tại nếu yếu thì sẽ biến mất, nếu mạnh thì phải thay đổi để đáp ứng được những nhu cầu mới của người dùng.  Các ngôn ngữ lập trình web đang phổ biến hiện nay như java, php, .NET cũng sẽ phải nhanh bắt nhịp để thay đổi cho phù hợp.

Khác nhau giữa HTML 5 vàHTML 4: http://www.w3.org/TR/html5-diff/

Đặc tả: http://www.w3.org/html/wg/html5/

Lỗi khi copy máy ảo của VMWare server trên Ubuntu server

Hôm nay mình ngồi copy mấy cái máy ảo của VMWare từ một máy Ubuntu server này sang một Ubuntu Server khác thì khi khởi động máy ảo đó lên không vào được mạng nữa, lúc trước nó có tên là eth0.

Thử khởi động lại card mạng:

sudo /etc/init.d/networking restart

thì nó báo lỗi không có thiết bị: no such device

Mình phải dùng lệnh sau:

ifconfig -a

Thì thấy bây giờ có một cái card mạng khác tên là eth1

Thế là mình phải cấu hình lại file /etc/network/interfaces :

sudo nano /etc/network/interfaces

và chuyển tất cả eth0 thành eth1 sau đó khởi động lại mạng:

sudo /etc/init.d/networking restart

Phù, bây giờ thì nó chạy ngon rồi!

Cài Netbean không hiện lên gì nếu dùng Ubuntu với Compiz

Lần đầu tiên mình cài Netbeans 6 lên Ubuntu có chạy Compiz thì chỉ thấy cái cửa sổ cài đặt toàn một màu xám, sau một hồi tìm kiếm lên mạng thì mới biết do bộ awt toolkit của java có vấn đề về tương thích với thằng compiz.

Để fix lỗi này bạn có thể dùng một trong 2 cách sau:

1. Soạn thảo file /etc/enviroment  thêm vào dòng sau ở dưới:

AWT_TOOLKIT=MToolkit

2. Soạn thảo file chạy của netbeans (Netbeans/bin/netbeans) và thêm vào dòng sau ở phía trên:

export AWT_TOOLKIT=MToolkit

Cả 2 cách có thể áp dụng cho một số chương trình java khác gặp lỗi tương tự Netbeans như: Poseidon UML, Aqua Fold Aqua Studio …

Chú ý là với cách thứ nhất có thể làm cho chương trình java khác dùng awt toolkit chạy bị lỗi crash jvm (vd với HOAECM Desktop 1.0). Thế nên bạn nên áp dụng cách thứ 2.

Thêm người dùng sudoer (có quyền dùng sudo)

Bạn cần thực hiện câu lệnh sau:

sudo usermod -G admin -a [ username ]

Câu lệnh trên đưa người dùng [username] vào trong nhóm admin để người dùng đó có thể sử dụng sudo.

Backup và restore subversion (svn)

Chúng ta sử dụng tool có sẵn của subversion là svnadmin để lưu toàn bộ một respository ra một file sau đó cũng dùng svnadmin để để đưa vào respository mới:

Lưu ra file:

svnadmin dump [đường dẫn đến respository] > [tên file]

Sau đó ngồi chờ vì với respository lớn thì khá lâu

Sau đó đưa vào respository mới:

svnadmin load [đường dẫn đến respository] < [file đã tạo khi dump]

Cài đặt phần mềm download cho Ubuntu (download manager).

Sau khi đã cài và dùng thử một số chương trình download manager dành cho linux cả dòng lệnh và giao diện như gwget, curl, d4x,wget mình đều thấy không được tiện và không nhanh hơn cho lắm. Sau đó mình thử dùng downthemall là một addon dành cho Firefox thì thấy tiện hơn và nhanh hơn (hỗ trợ chỉnh số luồng cần download, resume).

Download tại: https://addons.mozilla.org/en-US/firefox/addon/201

Hỗ trợ firefox từ 1.5 đến 3.0 beta.

Đổi time zone của ubuntu server.

Sử dụng lệnh

sudo tzconfig

Sau đó nhập vào tương ứng như sau

Do you want to change that?[n]: y

Please enter the number of the geographic area in which you live:

1) Africa                       7) Australia

2) America                      8) Europe

3) US time zones                9) Indian Ocean

4) Canada time zones            10) Pacific Ocean

5) Asia                         11) Use System V style time zones

6) Atlantic Ocean               12) None of the above

Then you will be shown a list of cities which represent the time zone
in which they are located. You should choose a city in your time zone.

Number: 5

Aden Almaty Amman Anadyr Aqtau Aqtobe Ashgabat Ashkhabad Baghdad Bahrain
Baku Bangkok Beirut Bishkek Brunei Calcutta Choibalsan Chongqing Chungking
Colombo Dacca Damascus Dhaka Dili Dubai Dushanbe Gaza Harbin Hong_Kong
Hovd Irkutsk Istanbul Jakarta Jayapura Jerusalem Kabul Kamchatka Karachi
Kashgar Katmandu Krasnoyarsk Kuala_Lumpur Kuching Kuwait Macao Macau
Magadan Makassar Manila Muscat Nicosia Novosibirsk Omsk Oral Phnom_Penh
Pontianak Pyongyang Qatar Qyzylorda Rangoon Riyadh Riyadh87 Riyadh88
Riyadh89 Saigon Sakhalin Samarkand Seoul Shanghai Singapore Taipei
Tashkent Tbilisi Tehran Tel_Aviv Thimbu Thimphu Tokyo Ujung_Pandang
Ulaanbaatar Ulan_Bator Urumqi Vientiane Vladivostok Yakutsk Yekaterinburg
Yerevan

Please enter the name of one of these cities or zones
You just need to type enough letters to resolve ambiguities
Press Enter to view all of them again
Name: [] Saigon

Download video, flash từ YouTube free

Bạn chỉ cần cài phiên bản mới của chương trình xem phim nghe nhạc RealPlayer

Download tại đây

Sau đó khi xem phim tại YouTube bạn sẽ thấy ở góc bên phải phía trên của video clip có một nút nhỏ, bạn ấn vào để download clip đó.

Ngoài ra bạn còn có thể download được các file flash ở trên các website khác như 24h, vnexpress …

Cái gì đẹp hơn một chiếc MacBook

Đẹp hơn một chiếc MacBook?

Chỉ có thể là một chiếc IMac 24″. Được thiết kế vô cùng gọn nhẹ, chỉ bao gồm màn hình (tích hợp cả CPU) và bàn phím, chuột, bạn có thể cảm nhận được vẻ đẹp của IMac dù nhìn gần hay xa, ở bất cứ góc độ nào. Những đường nét thiết kế tinh tế cùng với màu trắng ngọc ngà làm cho IMac giống như một tác phẩm nghệ thuật hơn là một cỗ máy công nghệ. Mặc dù không mạnh bằng MacPro nhưng với cấu hình Core 2 Duo 2.4, Ram 1G, HĐ 250G IMac chạy rất mượt mà với những công việc Multimedia hàng ngày. Giá bán ở châu âu khoảng từ 1700E đến 2400E tùy cấu hình.

IMac

Nhìn ở ngoài còn đẹp hơn rất nhiều. Nếu có một chiếc IMac ở nhà, có lẽ bạn nên rửa tay trước khi sử dụng tác phẩm nghệ thuật này.