BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: AOFDEVIL ที่ สิงหาคม 29, 2010, 16:09:06 PM

หัวข้อ: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: 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
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: ไม่เสียสละ ชัยชนะไม่เกิด ที่ สิงหาคม 29, 2010, 20:41:37 PM
[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


ประมาณนี้ได้ครับปรับนิดเดียวครับ
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: มนตรี บอยรักยุ้ยคนเดียว ที่ สิงหาคม 29, 2010, 21:08:14 PM
[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
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: AOFDEVIL ที่ สิงหาคม 30, 2010, 01:26:08 AM
ขอบคุณท่านทั้ง 2 คนครับ เด๋วผมจะเอาไปทดสอบดูครับ
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: Khuad ที่ สิงหาคม 30, 2010, 02:47:11 AM
อ้างถึง

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 ...
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: เข้ม ที่ สิงหาคม 30, 2010, 08:49:33 AM


... ถ้าจะปรับค่าของ my.cnf ตัวเก่าซึ่งใช้งานอยู่แล้ว
    ไม่ได้ต้องการติดตั้งระบบใหม่ หรือ ตั้งใจจะใช้การลบ ib*  แล้วนำข้อมูลเข้าฐานข้อมูลใหม่

    ตรง  innodb_log_file_size ถ้ากำหนดค่า = 512M จะ start mysql ใหม่ไม่ได้นะครับ
    ต้องกำหนดค่า = 256M เหมือนเดิมครับ ...  :D ...

ถูกต้องแล้วครับ  ;D ;D ;D
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: AOFDEVIL ที่ สิงหาคม 30, 2010, 10:42:01 AM
ขอบคุณ อาจารย์ มากครับ
สรุปว่า ถ้าจะเปลี่ยนค่า ก็เปลี่ยนเฉพาะ

myisam_sort_buffer_size = 10G

ถูกไหมครับ
แล้วก็สั่ง restart / Start sql ใน server ปกติ ใช่ไหมครับ
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: Khuad ที่ สิงหาคม 30, 2010, 12:17:28 PM
อ้างจาก: AOFDEVIL

สรุปว่า ถ้าจะเปลี่ยนค่า ก็เปลี่ยนเฉพาะ

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 ..
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ สิงหาคม 30, 2010, 13:03:25 PM
ผมว่านะจะเพิ่ม join_buffer_size = 2M กับ concurrent_insert = 2 ด้วยครับ
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: AOFDEVIL ที่ สิงหาคม 30, 2010, 13:24:32 PM
ขอบคุณครับ อ.ขวดครับ : เด๋วผมจาลองทำตาม อ.ขวด แนะนำดูครับ

ขอบคุณครับ ท่าน pop_hosxp ครับ : ส่วนที่ให้เพิ่มมันคืออะไรและทำหน้าที่อะไรหรอครับ
join_buffer_size = 2M กับ concurrent_insert = 2 ด้วยครับ
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: pop_hosxp ที่ สิงหาคม 30, 2010, 15:52:48 PM
ขอบคุณครับ ท่าน pop_hosxp ครับ : ส่วนที่ให้เพิ่มมันคืออะไรและทำหน้าที่อะไรหรอครับ

ดูจากกระทู้นี้ครับ อ.MN แนะนำไว้ http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=6648.0
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: มนตรี บอยรักยุ้ยคนเดียว ที่ สิงหาคม 30, 2010, 18:47:57 PM
อ้างจาก: AOFDEVIL

สรุปว่า ถ้าจะเปลี่ยนค่า ก็เปลี่ยนเฉพาะ

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 ..
กำลังคิดถึงคนไกลอยู่
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: jdadmin1 ที่ สิงหาคม 30, 2010, 20:33:40 PM
อ้างถึง
กำลังคิดถึงคนไกลอยู่
;D ;D ;D สอนไม่จำ เป็นผมป่านนี้ฉลองไม่เลิกกลับมาค่อยเคลียร์ ;D ;D ;D
หัวข้อ: Re: รบกวนอาจารย์ทุกท่านช่วยดูค่า my.cnf ให้ทีครับ
เริ่มหัวข้อโดย: มนตรี บอยรักยุ้ยคนเดียว ที่ สิงหาคม 30, 2010, 20:37:22 PM
อ้างถึง
กำลังคิดถึงคนไกลอยู่
;D ;D ;D สอนไม่จำ เป็นผมป่านนี้ฉลองไม่เลิกกลับมาค่อยเคลียร์ ;D ;D ;D

อยากอยู่ครับ แต่สร้างภาพไว้ก่อน มีสายสืบรอบทิศทาง