BMS-HOSxP Community
HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: AOFDEVIL ที่ สิงหาคม 29, 2010, 16:09:06 PM
-
สวัสดีครับ
ช่วยดูรบกวนอาจารย์ทุกท่าน หน่อยครับว่าต้องปรับอะไรบ้างครับ
ข้อมูลครับ
Server : Intel Xeon 5405 QC 2.0GHz/1333MHz FSB RAM 4 GB ; CentOS 5.3 , MySQL 5.1
ปล. มี server ตัวเดียวครับ
จำนวนเครื่อง Client ประมาณ 30 เครื่อง
Database ได้มีการเปลี่ยนแปลง โดยจากเดิม person มี record ประมาณ 50000 กว่า record และได้ทำการ update person อีก 36000 กว่า record เข้าไปใน person
หลังจากนั้นก็ได้มีการดึงข้อมูล และก็ทำให้เครื่อง client ค้าง เพราะก่อนหน้านั้นที่ยังไม่ได้เพิ่ม ขอ้มูล ใน person ก็มีปัญหาการค้าง ของ Client อยู่บ้าง
ผมก็เลยไม่แน่ใจว่าต้องปรับค่า ของ my.cnf หรือไม่อย่างไรถึงจะทำให้การดึงข้อมูลมีประสิทธิภาพมากยิ่งขึ้นอ่ะครับ รบกวนด้วยนะครับ
ขอบคุณครับ
[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 = 384M
max_allowed_packet = 16M
table_cache = 1M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
max_heap_table_size = 128M
myisam_sort_buffer_size = 128M
thread_cache = 8
query_cache_size= 256M
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
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/
#############################
innodb_buffer_pool_size = 1000M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
#server-id=1
#log-bin
#sync_binlog=1
#innodb_safe_binlog
[mysqldump]
quick
max_allowed_packet = 16M
allow-keywords
[mysql]
no-auto-rehash
default-character-set=tis620
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
-
[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 = 300M
max_allowed_packet = 16M
table_cache = 1M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
max_heap_table_size = 128M
myisam_sort_buffer_size = 128M
thread_cache = 8
query_cache_size= 256M
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
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/
#############################
innodb_buffer_pool_size = 2500M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
#server-id=1
#log-bin
#sync_binlog=1
#innodb_safe_binlog
[mysqldump]
quick
max_allowed_packet = 16M
allow-keywords
[mysql]
no-auto-rehash
default-character-set=tis620
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
ประมาณนี้ได้ครับปรับนิดเดียวครับ
-
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=tis620
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 256M
max_allowed_packet = 512M
table_cache = 1K
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
max_heap_table_size = 256M
myisam_sort_buffer_size = 10G
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 = 300
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/
#############################
innodb_buffer_pool_size = 2500M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
#server-id=1
#log-bin
#sync_binlog=1
#innodb_safe_binlog
[mysqldump]
quick
max_allowed_packet = 512M
allow-keywords
[mysql]
no-auto-rehash
default-character-set=tis620
[isamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
ประมาณนี้ได้ครับปรับนิดเดียวครับ
;D ;D ;D ;D ;D
-
ขอบคุณท่านทั้ง 2 คนครับ เด๋วผมจะเอาไปทดสอบดูครับ
-
read_buffer_size = 2M
read_rnd_buffer_size = 2M
max_heap_table_size = 256M
myisam_sort_buffer_size = 10G
thread_cache = 8
query_cache_size= 512M
innodb_buffer_pool_size = 2500M
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 512M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
... ถ้าจะปรับค่าของ my.cnf ตัวเก่าซึ่งใช้งานอยู่แล้ว
ไม่ได้ต้องการติดตั้งระบบใหม่ หรือ ตั้งใจจะใช้การลบ ib* แล้วนำข้อมูลเข้าฐานข้อมูลใหม่
ตรง innodb_log_file_size ถ้ากำหนดค่า = 512M จะ start mysql ใหม่ไม่ได้นะครับ
ต้องกำหนดค่า = 256M เหมือนเดิมครับ ... :D ...
-
... ถ้าจะปรับค่าของ my.cnf ตัวเก่าซึ่งใช้งานอยู่แล้ว
ไม่ได้ต้องการติดตั้งระบบใหม่ หรือ ตั้งใจจะใช้การลบ ib* แล้วนำข้อมูลเข้าฐานข้อมูลใหม่
ตรง innodb_log_file_size ถ้ากำหนดค่า = 512M จะ start mysql ใหม่ไม่ได้นะครับ
ต้องกำหนดค่า = 256M เหมือนเดิมครับ ... :D ...
ถูกต้องแล้วครับ ;D ;D ;D
-
ขอบคุณ อาจารย์ มากครับ
สรุปว่า ถ้าจะเปลี่ยนค่า ก็เปลี่ยนเฉพาะ
myisam_sort_buffer_size = 10G
ถูกไหมครับ
แล้วก็สั่ง restart / Start sql ใน server ปกติ ใช่ไหมครับ
-
สรุปว่า ถ้าจะเปลี่ยนค่า ก็เปลี่ยนเฉพาะ
myisam_sort_buffer_size = 10G
ถูกไหมครับ
แล้วก็สั่ง restart / Start sql ใน server ปกติ ใช่ไหมครับ
... ไม่ใช่หรอกครับ ลองปรับตามที่ อ.บอยแนะนำก็ได้ครับ
แต่ว่าตรง myisam_sort_buffer_size = 10G สงสัย อ.บอย แกจะพิมพ์ผิด(ช่วงนี้ใจไม่ค่อยอยู่กับเนื้อกับตัว ;D ครบ 2 ปีคงดีขึ้น ;D )
เห็น Server มี RAM แค่ 4G เอง
ถ้ามีการกำหนดค่าระดับ 10G
น่าจะเป็น myisam_max_sort_file_size หรือ myisam_max_extra_sort_file_size มากกว่าครับ
ลองเปลี่ยนแค่ตรง myisam_sort_buffer_size = 10G
เป็น myisam_sort_buffer_size = 128M ดูนะครับ เนื่องจากค่านี้เป็น per thread ถ้าตั้งค่ามากไปเดี๋ยวมีปัญหา RAM หมดครับ
แล้วก็ innodb_log_file_size ให้เหมือนเดิม
คือ innodb_log_file_size = 256M
แต่ก่อนเปลี่ยนให้ save ของเดิมเก็บไว้ก่อนนะครับ เผื่อเปลี่ยนแล้วบังเอิญงานเข้า start mysql ไม่ได้
ได้เอาของเดิมมาใช้ได้ครับ ... :D ..
-
ผมว่านะจะเพิ่ม join_buffer_size = 2M กับ concurrent_insert = 2 ด้วยครับ
-
ขอบคุณครับ อ.ขวดครับ : เด๋วผมจาลองทำตาม อ.ขวด แนะนำดูครับ
ขอบคุณครับ ท่าน pop_hosxp ครับ : ส่วนที่ให้เพิ่มมันคืออะไรและทำหน้าที่อะไรหรอครับ
join_buffer_size = 2M กับ concurrent_insert = 2 ด้วยครับ
-
ขอบคุณครับ ท่าน pop_hosxp ครับ : ส่วนที่ให้เพิ่มมันคืออะไรและทำหน้าที่อะไรหรอครับ
ดูจากกระทู้นี้ครับ อ.MN แนะนำไว้ http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=6648.0
-
สรุปว่า ถ้าจะเปลี่ยนค่า ก็เปลี่ยนเฉพาะ
myisam_sort_buffer_size = 10G
ถูกไหมครับ
แล้วก็สั่ง restart / Start sql ใน server ปกติ ใช่ไหมครับ
... ไม่ใช่หรอกครับ ลองปรับตามที่ อ.บอยแนะนำก็ได้ครับ
แต่ว่าตรง myisam_sort_buffer_size = 10G สงสัย อ.บอย แกจะพิมพ์ผิด(ช่วงนี้ใจไม่ค่อยอยู่กับเนื้อกับตัว ;D ครบ 2 ปีคงดีขึ้น ;D )
เห็น Server มี RAM แค่ 4G เอง
ถ้ามีการกำหนดค่าระดับ 10G
น่าจะเป็น myisam_max_sort_file_size หรือ myisam_max_extra_sort_file_size มากกว่าครับ
ลองเปลี่ยนแค่ตรง myisam_sort_buffer_size = 10G
เป็น myisam_sort_buffer_size = 128M ดูนะครับ เนื่องจากค่านี้เป็น per thread ถ้าตั้งค่ามากไปเดี๋ยวมีปัญหา RAM หมดครับ
แล้วก็ innodb_log_file_size ให้เหมือนเดิม
คือ innodb_log_file_size = 256M
แต่ก่อนเปลี่ยนให้ save ของเดิมเก็บไว้ก่อนนะครับ เผื่อเปลี่ยนแล้วบังเอิญงานเข้า start mysql ไม่ได้
ได้เอาของเดิมมาใช้ได้ครับ ... :D ..
กำลังคิดถึงคนไกลอยู่
-
กำลังคิดถึงคนไกลอยู่
;D ;D ;D สอนไม่จำ เป็นผมป่านนี้ฉลองไม่เลิกกลับมาค่อยเคลียร์ ;D ;D ;D
-
กำลังคิดถึงคนไกลอยู่
;D ;D ;D สอนไม่จำ เป็นผมป่านนี้ฉลองไม่เลิกกลับมาค่อยเคลียร์ ;D ;D ;D
อยากอยู่ครับ แต่สร้างภาพไว้ก่อน มีสายสืบรอบทิศทาง