banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Cấu hình MySQL để đạt perfomance tốt.  XML
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 09/06/2011 10:24:05 (+0700) | #1 | 239821
[Avatar]
buixuanan
Member

[Minus]    0    [Plus]
Joined: 03/12/2007 17:57:40
Messages: 19
Offline
[Profile] [PM]
Xin chào,

Như mình, với những ai mới làm server mysql thì việc cấu hình để mysql đạt hiệu năng cao tương đối khó vì file cấu hình my.cnf mặc định chỉ có vài thông số cơ bản.

Qua tìm kiếm, mình tìm được link hướng dẫn cách cấu hình mysql để đạt hiệu năng tốt tuỳ theo lượng RAM mà các bạn đang có.

Link: http://datastrangler.com/windpipe/2011/02/24/custom-mysql-config-files-to-ensure-maximum-performance/

Link này dùng để tham khảo, bạn nào có kinh nghiệm nhiều thì góp vào thêm nhé.

Cảm ơn.


[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 09/06/2011 12:41:54 (+0700) | #2 | 239833
[Avatar]
zeno
Elite Member

[Minus]    0    [Plus]
Joined: 20/07/2004 03:57:09
Messages: 124
Location: HVA
Offline
[Profile] [PM]
Mình thì xem các files my-huge.ini, my-medium.ini ... rồi tiến hành điều chỉnh cho phù hợp với khả năng của server và nhu cầu của mình.
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 09/06/2011 15:28:02 (+0700) | #3 | 239849
tvkdlcntt
Member

[Minus]    0    [Plus]
Joined: 25/05/2009 16:22:35
Messages: 2
Offline
[Profile] [PM]
bạn có thể nói rõ hơn được ko ?
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 09/06/2011 19:44:35 (+0700) | #4 | 239878
it.vietnam
Member

[Minus]    0    [Plus]
Joined: 04/03/2007 11:11:50
Messages: 6
Location: whoami
Offline
[Profile] [PM]
Bạn cũng có thể sử dụng mysqltunner.pl để thực hiện việc tunning cho database MySQL
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 09/06/2011 22:45:30 (+0700) | #5 | 239906
smile_sad
Member

[Minus]    0    [Plus]
Joined: 15/08/2006 19:15:08
Messages: 96
Offline
[Profile] [PM]
Về cấu hình mysql thì các bạn nên chú ý đến các thông số liên quan đến RAM. Mình hay sử dụng InnoDB làm default Storage, các bạn có thể tham khảo link bên dưới về việc thiết lập 1 vài thông số liên quan:

http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html

Ngoài ra, bạn cũng nên cấu hình output slow-log queries cho mysql server. Từ đó bạn có thể tối ưu lại câu truy vấn hoặc tối ưu dữ liệu của từng bảng.

Việc coding để output ra quá nhiều slow-queries với thời gian lớn sẽ ảnh hưởng đến việc response request từ phía client. Các truy vấn cập nhật dữ liệu có thể làm cho việc đọc/ghi dữ liệu lên ổ cứng bị tăng cao và rất dể làm cho server highload và treo.
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 13/06/2011 15:51:50 (+0700) | #6 | 240599
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Mình có vài thông số thế này:
Code:
mysql> show global status like 'Qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 16        |
| Qcache_free_memory      | 133341096 |
| Qcache_hits             | 111796    |
| Qcache_inserts          | 128402    |
| Qcache_lowmem_prunes    | 493       |
| Qcache_not_cached       | 9430556   |
| Qcache_queries_in_cache | 76        |
| Qcache_total_blocks     | 227       |
+-------------------------+-----------+
8 rows in set (0.00 sec)

Code:
mysql> show global status like 'Com_select';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| Com_select    | 12010686 |
+---------------+----------+
1 row in set (0.00 sec)

Code:
mysql> show global variables like 'query%';
+------------------------------+-----------+
| Variable_name                | Value     |
+------------------------------+-----------+
| query_alloc_block_size       | 8192      |
| query_cache_limit            | 524288    |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 134217728 |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
| query_prealloc_size          | 8192      |
+------------------------------+-----------+
7 rows in set (0.00 sec)

Theo các bạn có vấn đề gì không? Nếu có thì cách giải quyết là gì?
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 31/05/2012 16:03:22 (+0700) | #7 | 264352
consoko
Member

[Minus]    0    [Plus]
Joined: 11/10/2008 00:48:33
Messages: 26
Offline
[Profile] [PM]
Mình cũng đang ngâm cứu optimize Mysql. Nên trả lời Quanta xem thử đúng không.

Mysql đã enable query cache nhưng thông số Qcache_not_cached quá lớn so với Qcache_queries_in_cache và memory cho Query cache vẫn còn nhiều ===>>>> không hiệu quả. Ở đây mình đề xuất tăng query_cache_limit lên vì query có thể lớn hơn query_cache_limit ===>>> không thể cache được.
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 12/11/2012 22:33:26 (+0700) | #8 | 270921
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]
Các bạn có thể dùng công cụ này của Percona: https://tools.percona.com/wizard. Nhưng sau đó nên ngâm cứu thật kỹ cuốn này: http://www.amazon.com/gp/product/1449314287/

consoko wrote:

Mysql đã enable query cache nhưng thông số Qcache_not_cached quá lớn so với Qcache_queries_in_cache và memory cho Query cache vẫn còn nhiều ===>>>> không hiệu quả.
 

OK.

consoko wrote:

Ở đây mình đề xuất tăng query_cache_limit lên vì query có thể lớn hơn query_cache_limit ===>>> không thể cache được. 

Hay là disable query cache luôn cho rồi nhỉ. Bạn nghĩ sao?
Let's build on a great foundation!
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 13/11/2012 00:57:28 (+0700) | #9 | 270925
consoko
Member

[Minus]    0    [Plus]
Joined: 11/10/2008 00:48:33
Messages: 26
Offline
[Profile] [PM]
Theo mình thì không nên tắt query cache, thay vào đó mình nên điều chỉnh nó ở hợp lý với performance của mình. Tốt nhất nên thay thế luôn bằng memcache. smilie

Đây là 1 bài viết về đề high memory đối với query cache

Code:
http://www.mysqlperformanceblog.com/2007/03/23/beware-large-query_cache-sizes/
[Up] [Print Copy]
  [Discussion]   Cấu hình MySQL để đạt perfomance tốt. 13/11/2012 09:23:43 (+0700) | #10 | 270933
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

consoko wrote:
Theo mình thì không nên tắt query cache, thay vào đó mình nên điều chỉnh nó ở hợp lý với performance của mình.
 

Một số vấn đề khi enable query cache:
- Liệu có overhead hay không (cả read và write)?
- Rồi thì việc tranh chấp giữa các query khi invalidate
- InnoDB: long-running transaction?
- large query cache?

Đánh giá được lợi ích từ việc enable query cache không dễ:
- hit rate = Qcache_hits / (Qcache_hits+Com_select) chỉ là tương đối
- thời gian tiết kiệm được thì việc đọc/ghi từ/vào cache liệu có lớn hơn overhead khi invalidate và lưu kết quả vào cache?

Hiện mình vẫn đang disable query cache. Khi nào MySQL giải quyết được một số vấn đề trên thì mình sẽ cân nhắc enable lên:

http://www.mysqlperformanceblog.com/2011/04/10/should-we-give-a-mysqlquery-cache-a-second-chance/

consoko wrote:

Tốt nhất nên thay thế luôn bằng memcache. smilie
 

Đồng ý là việc cache ở tầng application có thể sẽ tốt hơn.
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|