BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: udomchok ที่ พฤศจิกายน 26, 2009, 23:15:07 PM

หัวข้อ: ไม่รู้เกิดอะไรขึ้น ??? กับ Server
เริ่มหัวข้อโดย: udomchok ที่ พฤศจิกายน 26, 2009, 23:15:07 PM
หลังจากเพิ่ม RAM จาก 2 เป็น 16GB และกำหนดค่า my.cnf ตามที่ อ.ขวด และ อ.บอย แนะนำ
ใช้มาได้พักใหญ่ / 2-3 วันนี้ไม่รู้เกิดอะไรขึ้น MySQL Load มากเลย ทำให้ระบบช้าลง พอไปดู Top พบว่า mysqld รับประทาน memory ไปมาก รวมทั้ง %CPU ก็สูงผิดปกติ แต่ดูใน MySQL monitor ไม่พบ process ใดผิดปกติ หรือค้างอยู่
สุดท้ายไม่รู้จะแก้อย่างไร เลยต้อง restart mysql ซะ แต่ก็ไม่สำเร็จ จนสุดท้ายต้อง restart server เลย
เฮ้อ....  ??? ??? ???
หัวข้อ: Re: ไม่รู้เกิดอะไรขึ้น ??? กับ Server
เริ่มหัวข้อโดย: doramon ที่ พฤศจิกายน 26, 2009, 23:28:14 PM
1. centos  64bit หรือ  32bit

2. max_connection = 2000 


ที่โรงพยาบาล network บ่อยๆๆ  หรือเปล่าครับ

ถ้าไม่บ่อย ลดลง 500 ก็พอครับ

เจอทาง msn หรือ chart  hosxp
หัวข้อ: Re: ไม่รู้เกิดอะไรขึ้น ??? กับ Server
เริ่มหัวข้อโดย: udomchok ที่ พฤศจิกายน 26, 2009, 23:51:56 PM
ดูใน hostname.err
091126 11:05:04  InnoDB: Error: cannot allocate 12884918272 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 53796176 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
InnoDB: Fatal error: cannot allocate the memory for the buffer pool

เปลี่ยนแปลงค่า ulimits ใน /etc/init.d/mysql จาก 20000 เป็น 30000
ได้กำหนดค่าใน /etc/security/limits.conf แล้วตั้งแต่เพิ่ม RAM
root            soft    nofile          30000
root            hard    nofile          30000
mysql           soft    nofile          30000
mysql           hard    nofile          30000


1. centos  64bit หรือ  32bit

2. max_connection = 2000 

ที่โรงพยาบาล network บ่อยๆๆ  หรือเปล่าครับ

ถ้าไม่บ่อย ลดลง 500 ก็พอครับ

เจอทาง msn หรือ chart  hosxp
CentOS 5.4 64 bit
max_Connection=2000


my.cnf
[client]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
default-character-set=tis620

[mysqld]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
skip-locking

default-storage-engine = INNODB
default-character-set=tis620
skip-name-resolve
skip-character-set-client-handshake
init_connect = 'SET NAMES tis620'

max-connection = 2000
concurrent_insert = 2
table_cache = 2048
max_allowed_packet = 1G
max_heap_table_size = 2G
key_buffer = 1024M
sort_buffer_size = 4M
read_buffer_size = 4M
read_rnd_buffer_size = 4M
join_buffer_size = 8M
myisam_sort_buffer_size = 2G
thread_cache = 8
query_cache_size= 2G
thread_concurrency = 8
skip-federated
server_id=1
innodb_file_per_table
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:100M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
innodb_buffer_pool_size = 12G
innodb_additional_mem_pool_size = 24M
innodb_log_file_size = 256M
innodb_log_buffer_size = 20M
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_thread_concurrency = 0
innodb_support_xa=0
innodb_open_files = 3000
innodb_locks_unsafe_for_binlog=1
innodb_flush_method=O_DIRECT
innodb_doublewrite=0
#innodb_adaptive_checkpoint = 1
#innodb_io_capacity = 1000
#innodb_write_io_threads = 16
#innodb_read_io_threads = 16

[mysqldump]
quick
max_allowed_packet = 2G
allow-keywords

[mysql]
no-auto-rehash
default-character-set=tis620

[isamchk]
key_buffer = 1024M
sort_buffer_size = 1024M
read_buffer = 16M
write_buffer = 16M

[myisamchk]
key_buffer = 1024M
sort_buffer_size = 1024M
read_buffer = 16M
write_buffer = 16M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
หัวข้อ: Re: ไม่รู้เกิดอะไรขึ้น ??? กับ Server
เริ่มหัวข้อโดย: Khuad ที่ พฤศจิกายน 27, 2009, 00:56:01 AM

... ดู my.cnf แล้วไม่ค่อยเหมือนที่ผมแนะนำเท่าไหร่ครับ 55555  ;D  ;D 
    ปกติผมไม่ค่อย set  my.cnf  อัดไว้เต็มที่เท่าไรหรอกครับพี่โก้ ....
 
    ไม่รู้ว่ากำหนดค่าบางตัวที่มันจองตาม connection ไว้เยอะไปหรือเปล่า   จำไม่ได้เหมือนกันว่ามีตัวไหนบ้าง  เคยพยายามแปลแบบงูๆ ปลาๆ ไว้หมือนกันแต่อยู่ที่เครื่องบนโรงพยาบาล เดี๋ยวพรุ่งนี้ลองดูอีกทีครับ
     อีกอย่างผมจะมีการกำหนดขนาดของ tmp_table ไว้ด้วย เผื่อไว้ก่อนครับ ..  :D ...
หัวข้อ: Re: ไม่รู้เกิดอะไรขึ้น ??? กับ Server
เริ่มหัวข้อโดย: มนตรี บอยรักยุ้ยคนเดียว ที่ พฤศจิกายน 27, 2009, 07:29:34 AM

CentOS 5.4 64 bit
max_Connection=2000


my.cnf
[client]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
default-character-set=tis620

[mysqld]
port      = 3306
socket      = /var/lib/mysql/mysql.sock
skip-locking

default-storage-engine = INNODB
default-character-set=tis620
skip-name-resolve
skip-character-set-client-handshake
init_connect = 'SET NAMES tis620'

max-connection = 2000
concurrent_insert = 2
table_cache = 2048
max_allowed_packet = 1G
max_heap_table_size = 2G
key_buffer = 1024M
sort_buffer_size = 4M ลดเหลือ 2M
read_buffer_size = 4M ลดเหลือ 2M
read_rnd_buffer_size = 4M ลดเหลือ 2M
join_buffer_size = 8M ลดเหลือ 4M
myisam_sort_buffer_size = 2G
thread_cache = 8
query_cache_size= 2G
thread_concurrency = 8
skip-federated
server_id=1
innodb_file_per_table
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:100M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
innodb_buffer_pool_size = 12G
innodb_additional_mem_pool_size = 24M
innodb_log_file_size = 256M
innodb_log_buffer_size = 20M
innodb_flush_log_at_trx_commit = 2
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_thread_concurrency = 0
innodb_support_xa=0
innodb_open_files = 3000
innodb_locks_unsafe_for_binlog=1
innodb_flush_method=O_DIRECT
innodb_doublewrite=0
#innodb_adaptive_checkpoint = 1
#innodb_io_capacity = 1000
#innodb_write_io_threads = 16
#innodb_read_io_threads = 16

[mysqldump]
quick
max_allowed_packet = 2G
allow-keywords

[mysql]
no-auto-rehash
default-character-set=tis620

[isamchk]
key_buffer = 1024M เพิ่มเป็น 2048M
sort_buffer_size = 1024M เพิ่มเป็น 2048M
read_buffer = 16M
write_buffer = 16M

[myisamchk]
key_buffer = 1024M เพิ่มเป็น 3000M
sort_buffer_size = 1024M เพิ่มเป็น 2048M
read_buffer = 16M
write_buffer = 16M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]


มี เครื่องลูกประมาณกี่เครื่อง
้hub ประมาณกี่เครื่อง
มีสำรองต่อเข้ากับ hub ทั้งหมด กี่เครื่อง