<![CDATA[Latest posts for the topic "Lỗi database trên Centos"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Lỗi database trên Centos /hvaonline/posts/list/44787.html#276079 /hvaonline/posts/list/44787.html#276079 GMT Lỗi database trên Centos

phuongtnotv wrote:
mysqli_real_connect(): (08004/1040): Too many connections  
Nghĩa là hiện đang có quá nhiều kết nối đến DB. Nếu bạn cũng không vào được thì chỉ còn cách đợi thôi. Khi nào login vào DB được thì bạn chạy lệnh sau và gửi kết quả lên: Code:
mysql> show global variables like '%timeout';
mysql> show global variables like '%connections';
Nhân tiện cũng nên gửi `my.cnf` lên. Server bạn có bao nhiêu RAM, dùng InnoDB hay MyISAM là chủ yếu? ]]>
/hvaonline/posts/list/44787.html#276083 /hvaonline/posts/list/44787.html#276083 GMT
Lỗi database trên Centos

quanta wrote:

phuongtnotv wrote:
mysqli_real_connect(): (08004/1040): Too many connections  
Nghĩa là hiện đang có quá nhiều kết nối đến DB. Nếu bạn cũng không vào được thì chỉ còn cách đợi thôi. Khi nào login vào DB được thì bạn chạy lệnh sau và gửi kết quả lên: Code:
mysql> show global variables like '%timeout';
mysql> show global variables like '%connections';
Nhân tiện cũng nên gửi `my.cnf` lên. Server bạn có bao nhiêu RAM, dùng InnoDB hay MyISAM là chủ yếu?  
mysql> show global variables like '%timeout'; +----------------------------+-------+ | Variable_name | Value | +----------------------------+-------+ | connect_timeout | 10 | | delayed_insert_timeout | 300 | | innodb_lock_wait_timeout | 50 | | innodb_rollback_on_timeout | OFF | | interactive_timeout | 28800 | | net_read_timeout | 30 | | net_write_timeout | 60 | | slave_net_timeout | 3600 | | table_lock_wait_timeout | 50 | | wait_timeout | 28800 | +----------------------------+-------+ 10 rows in set (0.00 sec) mysql> show global variables like '%connections'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | max_connections | 100 | | max_user_connections | 0 | +----------------------+-------+ 2 rows in set (0.00 sec) ]]>
/hvaonline/posts/list/44787.html#276084 /hvaonline/posts/list/44787.html#276084 GMT
Lỗi database trên Centos Code:
mysql> set global wait_timeout = 300;
Nên có cơ chế monitor số lượng connections, lúc nào thấy đông đông thì vào chạy thử: Code:
mysql -e "show full processlist\G" | awk -F ": " '/Command/ { print $2 }' | sort | uniq -c | sort -rn
xem có bao nhiêu processes đang Sleep.]]>
/hvaonline/posts/list/44787.html#276086 /hvaonline/posts/list/44787.html#276086 GMT
Lỗi database trên Centos

quanta wrote:

phuongtnotv wrote:
mysqli_real_connect(): (08004/1040): Too many connections  
Nghĩa là hiện đang có quá nhiều kết nối đến DB. Nếu bạn cũng không vào được thì chỉ còn cách đợi thôi. Khi nào login vào DB được thì bạn chạy lệnh sau và gửi kết quả lên: Code:
mysql> show global variables like '%timeout';
mysql> show global variables like '%connections';
Nhân tiện cũng nên gửi `my.cnf` lên. Server bạn có bao nhiêu RAM, dùng InnoDB hay MyISAM là chủ yếu?  
Đây là show global variables like '%timeout'; Code:
mysql> show global variables like '%timeout';
+----------------------------+-------+
| Variable_name              | Value |
+----------------------------+-------+
| connect_timeout            | 60    |
| delayed_insert_timeout     | 300   |
| innodb_lock_wait_timeout   | 50    |
| innodb_rollback_on_timeout | OFF   |
| interactive_timeout        | 120   |
| net_read_timeout           | 30    |
| net_write_timeout          | 60    |
| slave_net_timeout          | 3600  |
| table_lock_wait_timeout    | 50    |
| wait_timeout               | 60    |
+----------------------------+-------+
10 rows in set (0.00 sec)
Code:
mysql> show global variables like '%connections';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| max_connections      | 1024  |
| max_user_connections | 0     |
+----------------------+-------+
2 rows in set (0.00 sec)
đây là my.cnf Code:
[mysqld]
back_log                        = 100
open-files-limit                = 2048
open-files                      = 256
#max_connect_errors = 100000

skip-external-locking
skip-name-resolve
log_error                       = mysql-error.err
log_slow_queries                = mysql-slow.log

## Per-Thread Buffers * (max_connections) = total per-thread mem usage
thread_stack                    = 64K     #default: 32bit: 192K, 64bit: 256K
sort_buffer_size                = 2M      #default: 2M, larger may cause perf issues
read_buffer_size                = 1M      #default: 128K, change in increments of 4K
read_rnd_buffer_size            = 2M      #default: 256K
join_buffer_size                = 1M      #default: 128K
#binlog_cache_size              = 64K     #default: 32K, size of buffer to hold TX queries
#table_definition_cache = 10000
#table_open_cache = 10000
thread_cache_size = 1024
## total per-thread buffer memory usage: 8832000K = 8.625GB

## Query Cache
#query_cache_type               = 1
query_cache_size                = 1M    #global buffer
query_cache_limit               = 128M  #max query result size to put in cache

## Table and TMP settings
max_heap_table_size             = 256M  #recommend same size as tmp_table_size
bulk_insert_buffer_size         = 256M  #recommend same size as tmp_table_size
tmp_table_size                  = 256M    #recommend 1G min
#net_buffer_length = 16384
## Table cache settings
table_cache                     = 1000  #5.0.x <default: 64>

## Thread settings
thread_concurrency              = 8  #recommend 2x CPU cores
thread_cache_size               = 10  #recommend 5% of max_connections

#Query cache
#query_cache_size = 52428800;
query_cache_type = 1

local-infile=0
socket=/var/lib/mysql/mysql.sock
skip-locking
#skip-innodb
#query_cache_type=1
#query_cache_limit=32M
#query_cache_size=512M
max_connections=1024
interactive_timeout=120
wait_timeout=15
connect_timeout=60

key_buffer= 1M
record_buffer=1M

myisam_sort_buffer_size=256M
myisam_max_sort_file_size       = 2048M


#innodb_read_ahead = none
innodb_file_per_table = 1
innodb_open_files = 1000
#innodb_data_home_dir = /var/lib/mysql/ibdatadir
innodb_data_file_path= ibdata1:4G:autoextend
innodb_buffer_pool_size = 8G
innodb_additional_mem_pool_size = 64M

#innodb_log_group_home_dir = /var/lib/mysql/ibdlogdir
innodb_log_files_in_group = 2
innodb_log_file_size = 128M
innodb_log_buffer_size = 256M
innodb_flush_log_at_trx_commit = 2
#innodb_thread_concurrency = 0
#innodb_lock_wait_timeout=50
#innodb_flush_method = O_DIRECT
innodb_support_xa=0

# 200 * # DISKS
# plugin only
#innodb_io_capacity = 400
#innodb_read_io_threads = 4
#innodb_write_io_threads = 4

max_allowed_packet=128M
max_heap_table_size=32M
key_buffer_size = 512M
#low_priority_updates=1
#concurrent_insert=2
server-id=1

[safe_mysqld]
err-log=/var/log/mysqld.log
nice = -5
open_files_limit=8192

[mysqldump]
quick
max_allowed_packet=256M

[mysql]
no-auto-rehash
#safe-updates

[isamchk]
key_buffer=2048M
sort_buffer=2048M
read_buffer=512M
write_buffer=512M

[myisamchk]
key_buffer=2048M
sort_buffer=2048M
read_buffer=512M
write_buffer=512M

[mysqlhotcopy]
interactive-timeout
Mình dùng InnoDB ]]>
/hvaonline/posts/list/44787.html#276094 /hvaonline/posts/list/44787.html#276094 GMT
Lỗi database trên Centos Code:
mysql -e "show full processlist\G" | awk -F ": " '/User/ { print $2 }' | sort | uniq -c | sort -rn
xem ai đang mở nhiều connections nhất. PS: không phải cứ tăng max_connections lên vô tội vạ là sẽ giải quyết được vấn đề này đâu. ]]>
/hvaonline/posts/list/44787.html#276118 /hvaonline/posts/list/44787.html#276118 GMT
Lỗi database trên Centos

quanta wrote:
`wait_timeout` của bạn đã set là 1 phút, đủ nhỏ rồi. Vậy lý do có thể là gì nhỉ? Nói chung là mình muốn có cơ chế giám sát `Threads_connected`, khi nào gần chạm `max_connections` thì chạy: Code:
mysql -e "show full processlist\G" | awk -F ": " '/User/ { print $2 }' | sort | uniq -c | sort -rn
xem ai đang mở nhiều connections nhất. PS: không phải cứ tăng max_connections lên vô tội vạ là sẽ giải quyết được vấn đề này đâu.  
KQ khi chạy tại thời điểm cao Code:
[root@server ~]# mysql -e "show full processlist\G" | awk -F ": " '/User/ { print $2 }' | sort | uniq -c | sort -rn
    145 admin_db
      1 Lan_nana A new account by the name of [URL=http://www.domain.com/member.php?u=196398]Hân_nana[/URL] has been registered. The new account has been moved to the Prevention Usergroup.\r\n\r\nOther recognized logins for this user are
      1 da_admin
Cho mình hỏi luôn 1 chút , cứ 1 tiếng mình lại nhận đc 1 mail cảnh báo này . Code:
A new message or response with subject:

The service 'dovecot' on server server.domain.com is currently down

has arrived for you to view.
Follow this link to view it:

 http://domain.com:2222/CMD_TICKET?action=view&number=000014857&type=ticket


======================================================
Automatically generated email produced by DirectAdmin 1.38.3
]]>
/hvaonline/posts/list/44787.html#276127 /hvaonline/posts/list/44787.html#276127 GMT
Lỗi database trên Centos Code:
mysql -e "show full processlist\G" | awk -F ": " '/Command/ { print $(NF-2) }' | sort | uniq -c | sort -rn
Nên lập một chủ đề khác cho câu hỏi liên quan đến Dovecot.]]>
/hvaonline/posts/list/44787.html#276131 /hvaonline/posts/list/44787.html#276131 GMT
Lỗi database trên Centos

quanta wrote:
145 chưa phải là cao lắm nhỉ, mình thấy bạn để max_connections những 1024 mà. Lúc nào chạm ngưỡng, bạn lọc tiếp theo Command (post #4) xem chúng đang làm gì: Code:
mysql -e "show full processlist\G" | awk -F ": " '/Command/ { print $(NF-2) }' | sort | uniq -c | sort -rn
Nên lập một chủ đề khác cho câu hỏi liên quan đến Dovecot. 
Code:
[root@server ~]# mysql -e "show full processlist\G" | awk -F ": " '/Command/ { print $(NF-2) }' | sort | uniq -c | sort -rn
    186 Command: Query
     15 Command: Sleep
Mình dùng php-fpm . khi connections lên đến 260 là lỗi 502 bad gateway rồi Kiểm tra status của php-fpm Code:
pool:                 domain
process manager:      static
accepted conn:        6139
listen queue len:     0
max listen queue len: -1
idle processes:       1
active processes:     255
total processes:      256
max children reached: 0
]]>
/hvaonline/posts/list/44787.html#276133 /hvaonline/posts/list/44787.html#276133 GMT
Lỗi database trên Centos /hvaonline/posts/list/44787.html#276136 /hvaonline/posts/list/44787.html#276136 GMT Lỗi database trên Centos

quanta wrote:
- Cho mình xem full processlist luôn nhé. - Cài mysqltuner, chạy và gửi kết quả lên. - Kiểm tra lại phía ứng dụng xem có chỗ nào dùng persistent connection không. 
processlist mysql full Code:
mysql> SHOW FULL PROCESSLIST\G
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    758726
Current database: *** NONE ***

*************************** 1. row ***************************
     Id: 758695
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 2. row ***************************
     Id: 758697
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 3. row ***************************
     Id: 758704
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 4. row ***************************
     Id: 758706
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 5. row ***************************
     Id: 758711
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 6. row ***************************
     Id: 758712
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 7. row ***************************
     Id: 758713
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 8. row ***************************
     Id: 758714
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 9. row ***************************
     Id: 758722
   User: admin_domain
   Host: localhost
     db: admin_domain
Command: Sleep
   Time: 0
  State:
   Info: NULL
*************************** 10. row ***************************
     Id: 758726
   User: root
   Host: localhost
     db: NULL
Command: Query
   Time: 0
  State: NULL
   Info: SHOW FULL PROCESSLIST
10 rows in set (0.01 sec)
mysqltuner Code:
[root@server ~]# ./mysqltuner.pl

 >>  MySQLTuner 1.0.1 - 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.0.51a-community-log
[OK] Operating on 64-bit architecture

-------- Storage Engine Statistics -------------------------------------------
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
[--] Data in MyISAM tables: 3G (Tables: 258)
[--] Data in InnoDB tables: 14G (Tables: 146)
[--] Data in MEMORY tables: 14M (Tables: 32)
[!!] Total fragmented tables: 27

-------- Performance Metrics -------------------------------------------------
[--] Up for: 3h 4m 34s (7M q [690.153 qps], 723K conn, TX: 167B, RX: 3B)
[--] Reads / Writes: 76% / 24%
[--] Total buffers: 8.8G global + 6.1M per thread (1024 max threads)
[OK] Maximum possible memory usage: 15.0G (47% of installed RAM)
[OK] Slow queries: 0% (536/7M)
[OK] Highest usage of available connections: 33% (340/1024)
[OK] Key buffer size / total MyISAM indexes: 512.0M/3.2G
[OK] Key buffer hit rate: 97.7% (56M cached / 1M reads)
[OK] Query cache efficiency: 37.6% (1M cached / 4M selects)
[!!] Query cache prunes per day: 16234235
[OK] Sorts requiring temporary tables: 0% (314 temp sorts / 629K sorts)
[!!] Joins performed without indexes: 493
[OK] Temporary tables created on disk: 2% (3K on disk / 120K total)
[OK] Thread cache hit rate: 96% (22K created / 723K connections)
[!!] Table cache hit rate: 0% (64 open / 1M opened)
[OK] Open file limit used: 0% (32/5K)
[OK] Table locks acquired immediately: 97% (7M immediate / 7M locks)
[!!] InnoDB data size / buffer pool: 14.8G/8.0G

-------- 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
    Increase table_cache gradually to avoid file descriptor limits
Variables to adjust:
    query_cache_size (> 1M)
    join_buffer_size (> 1020.0K, or always use indexes with joins)
    table_cache (> 64)
    innodb_buffer_pool_size (>= 14G)
]]>
/hvaonline/posts/list/44787.html#276145 /hvaonline/posts/list/44787.html#276145 GMT
Lỗi database trên Centos /hvaonline/posts/list/44787.html#276147 /hvaonline/posts/list/44787.html#276147 GMT Lỗi database trên Centos

quanta wrote:
Mình cần full processlist lúc gần chạm ngưỡng ấy chứ 10 cái mà lại toàn Sleep thế kia thì có tác dụng gì. `my.cnf` nhìn tạm ổn ngoài việc nên tăng `innodb_buffer_pool_size` lên nữa. Bạn có 32G RAM, trước mắt cứ tăng lên... gấp đôi con số hiện tại (16G), sau này có thể tăng lên 24G cũng được (nếu server này không chạy dịch vụ gì khác ngoài MySQL). 
Mình dùng nginx + php-fpm . Do php-fpm chiếm nhiều ram quá (~ 25G) nên mình giảm innodb_buffer_pool_size xuống 8G]]>
/hvaonline/posts/list/44787.html#276148 /hvaonline/posts/list/44787.html#276148 GMT