[Question] Server OverLoad |
23/04/2013 21:30:29 (+0700) | #1 | 275171 |
thanhtamntp
Member
|
0 |
|
|
Joined: 08/12/2008 10:50:06
Messages: 247
Offline
|
|
Hiện tại con server của em dạo này nó thường xuyên bị overload
[URL=http://imageshack.us/photo/my-images/607/screenshot784043.png/]
[/URL]
Đây là lúc tạm stop mail service lại
root@host [~]# uptime
22:18:23 up 23:51, 2 users, load average: 9.21, 15.28, 34.96
root@host [~]# free -m
total used free shared buffers cached
Mem: 8116 5238 2877 0 438 3147
-/+ buffers/cache: 1652 6463
Swap: 8197 0 8197
root@host [~]# hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 3204 MB in 2.00 seconds = 1603.09 MB/sec
Timing buffered disk reads: 50 MB in 3.18 seconds = 15.73 MB/sec
root@host [~]#
Trước đây Load Average thường chỉ ở mức 1. Kiểm tra thì thấy mysql và exim thường s/d nhiều CPU nhất
Còn đây là file config của mysql
root@cpanel [~]# vi /etc/my.cnf
[client]
port=3306
socket="/var/lib/mysql/mysql.sock"
[mysqldump]
quick
max_allowed_packet=16M
default-storage-engine=MyISAM
#innodb_file_per_table=1
[mysql]
no-auto-rehash
[myisamchk]
read_buffer=2M
write_buffer=2M
sort_buffer_size=128M
key_buffer=128M
[mysqlhotcopy]
interactive-timeout
[mysqld]
max_connect_errors=100
connect_timeout=60
server-id=1
skip-networking
character-set-server=utf8
table_cache=1024
read_rnd_buffer_size=4M
skip-federated
socket="/var/lib/mysql/mysql.sock"
bind-address=127.0.0.1
log-slow-queries="/var/log/mysql-slow.log"
long_query_time=5
default-storage-engine=MyISAM
#innodb_file_per_table=1
thread_concurrency=8
query_cache_size=32M
thread_cache_size=8
myisam_sort_buffer_size=64M
key_buffer=384M
skip-external-locking
skip-character-set-client-handshake
read_buffer_size=1M
port=3306
sort_buffer_size=1M
max_allowed_packet=256M
[isamchk]
read_buffer=2M
write_buffer=2M
sort_buffer_size=128M
key_buffer=128M
|
|
|
|
|
[Question] Server OverLoad |
24/04/2013 10:34:17 (+0700) | #2 | 275180 |
thanhtamntp
Member
|
0 |
|
|
Joined: 08/12/2008 10:50:06
Messages: 247
Offline
|
|
Tạm thời em đang dùng giải pháp hạn chế cpu cho mysql và exim, thấy load cũng đã giảm. |
|
|
|
|
[Question] Server OverLoad |
24/04/2013 14:13:07 (+0700) | #3 | 275192 |
|
Ikut3
Elite Member
|
0 |
|
|
Joined: 24/09/2007 23:47:03
Messages: 1429
Location: Nhà hát lớn
Offline
|
|
Tạm thời em đang dùng giải pháp hạn chế cpu cho mysql và exim, thấy load cũng đã giảm.
Theo mình hiểu cách bạn hạn chế CPU & MYSQL ở đây là dùng Nice (Set Priority) cho CPU. Điều này có thể được coi như việc cấp Quota cho 1 Process nhất định, nhưng nó cũng là cánh cửa sẵn sàng "bóp" luôn các process khác nếu như lượng request vượt quá số hạn. |
|
|
|
|
[Question] Server OverLoad |
24/04/2013 15:54:18 (+0700) | #4 | 275204 |
thanhtamntp
Member
|
0 |
|
|
Joined: 08/12/2008 10:50:06
Messages: 247
Offline
|
|
Hiện tại em đã bỏ cpu limit vì theo dõi thấy nó vẫn vượt quá quota mà mình set.
Có lúc thấy Load Averages lên đến 100 luôn |
|
|
|
|
[Question] Server OverLoad |
24/04/2013 16:00:59 (+0700) | #5 | 275205 |
thanhtamntp
Member
|
0 |
|
|
Joined: 08/12/2008 10:50:06
Messages: 247
Offline
|
|
Đây là kết quả chạy tuner
>> MySQLTuner 1.2.0 - Major Hayden <major@mhtx.net>
>> Bug reports, feature requests, and downloads at http://mysqltuner.com/
>> Run with '--help' for additional options and output filtering
-------- General Statistics --------------------------------------------------
[--] Skipped version check for MySQLTuner script
[OK] Currently running supported MySQL version 5.5.28-cll
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM
-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 3G (Tables: 28432)
[--] Data in InnoDB tables: 118M (Tables: 1447)
[--] Data in PERFORMANCE_SCHEMA tables: 0B (Tables: 17)
[--] Data in MEMORY tables: 102M (Tables: 200)
[!!] Total fragmented tables: 1649
-------- Security Recommendations -------------------------------------------
[OK] All database users have passwords assigned
-------- Performance Metrics -------------------------------------------------
[--] Up for: 1h 46m 49s (1M q [216.611 qps], 38K conn, TX: 6B, RX: 317M)
[--] Reads / Writes: 82% / 18%
[--] Total buffers: 576.0M global + 6.3M per thread (151 max threads)
[OK] Maximum possible memory usage: 1.5G (18% of installed RAM)
[OK] Slow queries: 0% (44/1M)
[OK] Highest usage of available connections: 31% (48/151)
[OK] Key buffer size / total MyISAM indexes: 384.0M/1.0G
[OK] Key buffer hit rate: 99.6% (23M cached / 87K reads)
[OK] Query cache efficiency: 65.8% (723K cached / 1M selects)
[!!] Query cache prunes per day: 1737261
[OK] Sorts requiring temporary tables: 0% (242 temp sorts / 146K sorts)
[!!] Joins performed without indexes: 6027
[!!] Temporary tables created on disk: 29% (63K on disk / 216K total)
[OK] Thread cache hit rate: 95% (1K created / 38K connections)
[!!] Table cache hit rate: 1% (1K open / 53K opened)
[OK] Open file limit used: 40% (1K/4K)
[OK] Table locks acquired immediately: 99% (933K immediate / 934K locks)
[OK] InnoDB data size / buffer pool: 118.8M/128.0M
-------- Recommendations -----------------------------------------------------
General recommendations:
Run OPTIMIZE TABLE to defragment tables for better performance
MySQL started within last 24 hours - recommendations may be inaccurate
Adjust your join queries to always utilize indexes
When making adjustments, make tmp_table_size/max_heap_table_size equal
Reduce your SELECT DISTINCT queries without LIMIT clauses
Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
query_cache_size (> 32M)
join_buffer_size (> 128.0K, or always use indexes with joins)
tmp_table_size (> 16M)
max_heap_table_size (> 256M)
table_cache (> 1024)
|
|
|
|
|
[Question] Server OverLoad |
24/04/2013 22:32:09 (+0700) | #6 | 275207 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
thanhtamntp wrote:
Kiểm tra thì thấy mysql và exim thường s/d nhiều CPU nhất
MySQL thường cần dùng nhiều CPU khi nó phải xử lý những câu truy vấn chậm. Giảm `long_query_time` xuống 0 rồi bắt đầu từ đây:
Code:
pt-query-digest /var/log/mysql-slow.log
thanhtamntp wrote:
Còn đây là file config của mysql
default-storage-engine=MyISAM
Có lý do gì đặc biệt mà bạn để MyISAM là default không?
thanhtamntp wrote:
Hiện tại em đã bỏ cpu limit vì theo dõi thấy nó vẫn vượt quá quota mà mình set.
`cpulimit` chỉ là giải pháp tạm thời thôi. Muốn lâu dài thì phải tuning lại ứng dụng.
thanhtamntp wrote:
Có lúc thấy Load Averages lên đến 100 luôn
Bạn kiểm tra xem có process nào bị D state không?
Code:
watch "ps -eo pid,user,state,command | awk '\$3 == /D/ { print \$0 }'"
thanhtamntp wrote:
Đây là kết quả chạy tuner
...
Bắt đầu từ mấy cái chấm than đi.
[!!] Switch to 64-bit OS - MySQL cannot currently use all of your RAM
Giờ có mấy ai cài hệ điều hành 32 bit cho server đâu.
[!!] Total fragmented tables: 1649
http://www.dufault.info/blog/a-script-to-optimize-fragmented-tables-in-mysql/
[!!] Query cache prunes per day: 1737261
Tăng `query_cache_size` lên hoặc tắt đi luôn: http://www.mysqlperformanceblog.com/2011/04/10/should-we-give-a-mysqlquery-cache-a-second-chance/
[!!] Joins performed without indexes: 6027
[!!] Temporary tables created on disk: 29% (63K on disk / 216K total)
Dùng `EXPLAIN` hoặc `pt-query-advisor` để kiểm tra lại các câu truy vấn.
|
|
Let's build on a great foundation! |
|
|
|
[Question] Server OverLoad |
02/05/2013 08:39:41 (+0700) | #7 | 275365 |
thanhtamntp
Member
|
0 |
|
|
Joined: 08/12/2008 10:50:06
Messages: 247
Offline
|
|
1. MyISAM là từ lúc cài để vậy nên em sợ chuyển sang Innodb sợ có vấn đề gì.
2. OS 32bits cũng là do người khác cài từ đầu
3. Sau khi thay đổi 1 số thông tin như anh bảo ở trên Load Averages có giảm nhưng vẫn cao
|
|
|
|
|
[Question] Server OverLoad |
05/05/2013 20:39:20 (+0700) | #8 | 275468 |
myquartz
Member
|
0 |
|
|
Joined: 04/01/2005 04:58:30
Messages: 563
Offline
|
|
exim là MTA, server của bạn gửi nhận mail nhiều lắm mới bị chậm thế.
Bạn xem cụ thể làm sao exim lại phải làm việc nhiều thế? cỡ 4CPU cho một mail server sẽ đủ sức xử lý đến cả chục GB/giờ. Không rõ bạn nhiều cỡ nào? |
|
|
|
|
[Question] Server OverLoad |
13/05/2013 22:49:12 (+0700) | #9 | 275680 |
soidamientrung
Member
|
0 |
|
|
Joined: 23/08/2007 12:09:11
Messages: 54
Offline
|
|
Hi anh thanhtamntp,
anh dùng tool gì mà cho ra màn trực quan thế. Cho em xin tên em nó với nhé.
Thanks anh.
|
|
|
|
|
[Question] Server OverLoad |
13/05/2013 23:53:17 (+0700) | #10 | 275685 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
soidamientrung wrote:
anh dùng tool gì mà cho ra màn trực quan thế. Cho em xin tên em nó với nhé.
http://htop.sourceforge.net/ |
|
Let's build on a great foundation! |
|
|
|
[Question] Server OverLoad |
14/05/2013 22:52:52 (+0700) | #11 | 275722 |
soidamientrung
Member
|
0 |
|
|
Joined: 23/08/2007 12:09:11
Messages: 54
Offline
|
|
Cảm ơn anh quanta. Em đã run ngon lành.
Em định vọc mấy command để xác định nguyen nhân gây chậm hệ thống, mong anh quanta cho em 1 lời khuyên/tài liệu/link.
Thanks anh nhiều. |
|
|
|
|
[Question] Server OverLoad |
15/05/2013 09:14:53 (+0700) | #12 | 275724 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
soidamientrung wrote:
Em định vọc mấy command để xác định nguyen nhân gây chậm hệ thống, mong anh quanta cho em 1 lời khuyên/tài liệu/link.
Có mấy nguyên nhân chính có thể gây chậm server:
1. Load average cao
2. Hết RAM, phải dùng đến swap
3. CPU bận rộn
4. Đĩa cứng đang hoạt động hết công suất -> Wait IO cao (cái này có liên quan đến nguyên nhân thứ nhất). Đọc thêm về "D" state.
5. Hết bandwidth
Tất cả dẫn đến một câu hỏi:
Process nào đang dùng những tài nguyên trên nhiều nhất?
Để trả lời câu hỏi này thì bạn có thể dùng những công cụ như: top (atop, htop), ps, iotop, iostat, vmstat, nethogs, iftop, ...
Tham khảo thêm:
- http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html
- http://h30565.www3.hp.com/t5/Feature-Articles/16-Linux-Server-Monitoring-Commands-You-Really-Need-To-Know/ba-p/1936
và một câu hỏi khó hơn:
Process đó đang làm gì mà lại dùng nhiều tài nguyên đến vậy?
Với câu hỏi này, bạn có thể đọc `man proc`, dùng `lsof`, `fuser`, `strace`, ... hoặc các công cụ profiler như: OProfile, perf, Valgrind, ...
Đọc thêm:
- http://www.eclipse.org/linuxtools/downloads.php
- http://www.pixelbeat.org/programming/profiling/ |
|
Let's build on a great foundation! |
|
|
|
|