BMS-HOSxP Community
HOSxP => MySQL => ข้อความที่เริ่มโดย: Kab_Moo ที่ พฤษภาคม 26, 2011, 15:33:02 PM
-
มีปัญหาอยู่ว่า process mysql ใช้ ram เต็มเลยครับ + ใช้ swap เกิน 80% ทำให้ เครื่องลูกข่าย ไม่สามารถ Connect ดา้ต้าเบสได้ครับ จะฟ้องว่า mysql connect error จากรูปเป็นตอน restart service mysql ได้ 40 นาทีครับ คือ swap กินมากมายเหลือเกินครับ รบกวนด้วยครับ ผมแนบ รูปและ my.cnf มาด้วยครับ
-
ram serverมีเท่าไหร่กันนี่
-
5 จิกครับ มีคอมอยู่ราวๆ 35เครื่อง ครับผม ;D
-
5 จิกครับ มีคอมอยู่ราวๆ 35เครื่อง ครับผม ;D
แรมมี 5 GB ตั้งให้ mysql จองไปแล้ว 4G เกือบหมดแล้ว ... :-[
และแถมยังรันใน Graphic mode อีก ...
คงไม่พอแล้วหล่ะครับ ...
ปรับให้ mysql ใช้แค่ 40-60% ก็พอครับ ....
และก็รัน linux ใน text mode ลดการใช้ RAM ครับ
-
ลด innodb_buffer_pool_size ลงเหลือแค่ 2500M และ key_buffer เหลือ 128 M แล้ว restart mysql และทำ high performance ด้วยครับ
[xtrabackup]
datadir=/var/lib/mysql
backupdir=/mysqlbackup
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
#basedir = /var/lib/mysql
#datadir = /var/lib/mysql/data
default-character-set=tis620
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 512M --> 128M
max_allowed_packet = 512M
table_cache = 1500
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 1M
max_heap_table_size = 512M
myisam_sort_buffer_size = 1G
thread_cache = 8
query_cache_size= 512M
thread_concurrency = 8
default-character-set=tis620
skip-name-resolve
innodb_file_per_table
skip-character-set-client-handshake
init_connect = 'SET NAMES tis620'
max_connections = 1000
######################################## 5.1.25--->X cpu multicore
innodb_thread_concurrency = 0
########################################
innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
############################# mysql 5.1.X
#innodb_log_arch_dir = /var/lib/mysql/
#############################
#############################
# add rc.local ---> ulimit -n 30000
#############################
innodb_buffer_pool_size = 4000M -->2500M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 50
innodb_flush_method=O_DIRECT
innodb_doublewrite=0
innodb_support_xa = 0
innodb_open_files = 2000
innodb_locks_unsafe_for_binlog=1
join_buffer_size = 2M
concurrent_insert = 2
innodb_adaptive_checkpoint=1
[mysqldump]
quick
max_allowed_packet = 32M
allow-keywords
[mysql]
no-auto-rehash
default-character-set=tis620
[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 1M
write_buffer = 1M
[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 1M
write_buffer = 1M
[mysqlhotcopy]
interactive-timeout
-
ต้องดูว่า...เครื่องลูกประมาณเท่าไร
innodb_buffer น่าจะอยู่ที่ประมาณ 50% ของแรมทั้งหมด หรือประมาณ 2500M ไม่เกินนี้
max_connection = 100 ก็พอครับ
ผมก็เคยเจอปัญหาแบบนี้...(เนื่องมาจากบ้าพลัง)...ปรับลดตามที่อ.pop บอก
และปรับลด max_connection ลง ก็โอเคแล้วครับ
-
ขอบคุณทุกท่านที่ชี้แนะครับ ตอนนี้ลองปรับแล้วครับ ส่วนการตั้ง high performance ทำยังไงครับ
-
เคยทำ ง่ะ แต่จำไม่ได้ว่า ฝั่ง ซ้ายมือ ติ๊ก อะไรบ้างอ่ะ ตามรูป คับ ให้ท่านอื่น ช่วยง่ะคับ
-
ของผม ก็เป็นในรูปเหมือนกับท่านเลยครับ ;D
-
เคยทำ ง่ะ แต่จำไม่ได้ว่า ฝั่ง ซ้ายมือ ติ๊ก อะไรบ้างอ่ะ ตามรูป คับ ให้ท่านอื่น ช่วยง่ะคับ
ไม่ต้องตั้งค่าอะไร กดปุ่ม high performance อย่างเดียวเลยครับ ทำตอนที่คนไข้น้อย ๆ แล้วเดินหนีไปเลยนะครับ ไม่ต้องรอ :D
-
เคยทำ ง่ะ แต่จำไม่ได้ว่า ฝั่ง ซ้ายมือ ติ๊ก อะไรบ้างอ่ะ ตามรูป คับ ให้ท่านอื่น ช่วยง่ะคับ
ไม่ต้องตั้งค่าอะไร กดปุ่ม high performance อย่างเดียวเลยครับ ทำตอนที่คนไข้น้อย ๆ แล้วเดินหนีไปเลยนะครับ ไม่ต้องรอ :D
แนะนำกด ช่วง ที่ไม่มีคนใช้งานนะครับ
-
ขอบคุณทุกท่านครับ และอาจารย์ขวดด้วยครับ ที่ส่ง config พร้อมคำอธิบายให้ครับ