2013-08-13 2 views
0

У меня есть некоторые проблемы с mySQL innoDB Engine ..
SQL-выражения, такие как «select * from posts», занимают много времени.
Это мой MySQL Config:mysql innoDB Производительность

[mysql] 

# CLIENT # 
port       = 3306 
socket       = /var/lib/mysqld/mysqld.sock 

[mysqld_safe] 
socket   = /var/run/mysqld/mysqld.sock 
nice   = 0 

[mysqld] 

# GENERAL # 
user       = mysql 
#default_storage_engine   = InnoDB 
pid-file  = /var/run/mysqld/mysqld.pid 
socket   = /var/run/mysqld/mysqld.sock 
port   = 3306 
basedir   = /usr 
tmpdir   = /tmp 
lc-messages-dir = /usr/share/mysql 

bind-address   = 127.0.0.1 

# MyISAM # 
key_buffer_size    = 32M 
myisam_recover     = FORCE,BACKUP 

# SAFETY # 
max_allowed_packet    = 16M 
max_connect_errors    = 1000000 

# DATA STORAGE # 
datadir      = /var/lib/mysql/ 

# BINARY LOGGING # 
log_bin      = /var/lib/mysql/mysql-bin 
expire_logs_days    = 14 
sync_binlog     = 1 

# CACHES AND LIMITS # 
tmp_table_size     = 64M 
max_heap_table_size   = 64M 
query_cache_type    = 0 
query_cache_size    = 0 
max_connections    = 500 
thread_cache_size    = 50 
open_files_limit    = 65535 
table_definition_cache   = 1024 
table_open_cache    = 2048 
read_rnd_buffer_size   = 1M 
query_cache_type    = 1 

# INNODB # 
innodb_flush_method   = O_DIRECT 
innodb_log_files_in_group  = 2 
innodb_log_file_size   = 256M 
innodb_flush_log_at_trx_commit = 1 
innodb_file_per_table   = 1 
innodb_buffer_pool_size  = 4G 

# LOGGING # 
log_error      = /var/lib/mysql/mysql-error.log 
log_queries_not_using_indexes = 1 
slow_query_log     = 1 
slow_query_log_file   = /var/lib/mysql/mysql-slow.log 

Хотя SQL заявление работает я получил СРЕДНЕМ нагрузки ~ 2,0
присвоенные ядра в основном использование 0,0% ..

IOSTAT скажи:

avg-cpu: %user %nice %system %iowait %steal %idle 
      0.39 0.00 0.26 5.15 0.04 94.16 

Device:   tps kB_read/s kB_wrtn/s kB_read kB_wrtn 
xvdap2   152.80  139.39  5550.51  567593 22601276 
xvdap1   0.04   0.21   0.00  836   0 

Любые идеи для повышения производительности?

Hardware (XEN guest) 
processor  : 0 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

processor  : 1 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

processor  : 2 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

processor  : 3 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

processor  : 4 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

processor  : 5 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

processor  : 6 
vendor_id  : GenuineIntel 
cpu family  : 6 
model   : 30 
model name  : Intel(R) Xeon(R) CPU   X3440 @ 2.53GHz 
stepping  : 5 
cpu MHz   : 2527.052 
cache size  : 8192 KB 
fpu    : yes 
fpu_exception : yes 
cpuid level  : 11 
wp    : yes 
flags   : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht syscall nx lm constant_tsc rep_good aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm 
bogomips  : 5054.10 
clflush size : 64 
cache_alignment : 64 
address sizes : 36 bits physical, 48 bits virtual 
power management: 

MemInfo

MemTotal:  6146908 kB 
MemFree:   2231936 kB 
Buffers:   45436 kB 
Cached:   2542340 kB 
SwapCached:   0 kB 
Active:   2629024 kB 
Inactive:   915652 kB 
Active(anon):  956724 kB 
Inactive(anon): 46272 kB 
Active(file): 1672300 kB 
Inactive(file): 869380 kB 
Unevictable:   0 kB 
Mlocked:    0 kB 
SwapTotal:  2097144 kB 
SwapFree:  2097144 kB 
Dirty:   972812 kB 
Writeback:   1412 kB 
AnonPages:  956912 kB 
Mapped:   18048 kB 
Shmem:    46104 kB 
Slab:    144676 kB 
SReclaimable:  137764 kB 
SUnreclaim:   6912 kB 
KernelStack:  1136 kB 
PageTables:   7524 kB 
NFS_Unstable:   0 kB 
Bounce:    0 kB 
WritebackTmp:   0 kB 
CommitLimit:  5170596 kB 
Committed_AS: 4964188 kB 
VmallocTotal: 34359738367 kB 
VmallocUsed:  26032 kB 
VmallocChunk: 34359711292 kB 
HardwareCorrupted:  0 kB 
HugePages_Total:  0 
HugePages_Free:  0 
HugePages_Rsvd:  0 
HugePages_Surp:  0 
Hugepagesize:  2048 kB 
DirectMap4k:  6156288 kB 
DirectMap2M:   0 kB 

Пример схемы:

CREATE TABLE IF NOT EXISTS Produkte` (
    id int(11) NOT NULL AUTO_INCREMENT, 
    uniqueID varchar(50) CHARACTER SET latin1 NOT NULL, 
    Link varchar(255) CHARACTER SET latin1 NOT NULL, 
    Title varchar(1000) CHARACTER SET latin1 NOT NULL, 
    foundTime varchar(100) CHARACTER SET latin1 NOT NULL, 
    Desc text CHARACTER SET latin1 NOT NULL, 
    Rank int(11) NOT NULL DEFAULT '10000000', 
    PRIMARY KEY (id), 
    UNIQUE KEY uniqueID (uniqueID) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=9407809 ; 
+0

Под Linux высокая загрузка низкого процессора обычно является признаком дискового конфликта. –

+0

Насколько велика ваша таблица 'posts', а ваша полная БД больше, чем размер вашего пула 4G? Это может быть просто то, что вы много читаете из большой таблицы, которая не была кэширована, и должна изменить ваш запрос, чтобы он ориентировал строки или диапазон или строки, а не читал целую таблицу. –

+0

Этот вопрос не подлежит обсуждению без дополнительных знаний о используемых схемах таблицы базы данных. (например: возможно, выбор медленный, потому что нет индекса и т. д.) –

ответ

0

изменения Try innodb_flush_log_at_trx_commit до 2. Из documentation:

Вы можете достичь более высокой производительности, установив значение, отличное от 1, но тогда вы можете потерять до одной секунды действий в аварии.

+1

это выбор не имеет ничего общего с innodb_flush_log_at_trx_commit ... –

Смежные вопросы