Centos 6 上 mysql CPU 使用率高超过 %1500

Centos 6 上 mysql CPU 使用率高超过 %1500

我正在由 Planet 托管的专用虚拟 24GB RAM CentOS 服务器上运行高流量网站。

服务器经常因为 CPU 使用率过高 (%1500) 而死机

当我使用“top”命令检查正在运行的进程时,我发现平均负载总是超过 100,而 mysql 的 CPU 经常超过 1500%

我尝试调整 mysql、调整 apache、my.cnf、httpd.cnf,删除我不使用的 Apache 模块,但这并不能解决问题。

请告诉我您需要知道我的服务器配置中的哪些值以帮助我诊断问题。

提前致谢。

    Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 44
Stepping:              2
CPU MHz:               2400.093
BogoMIPS:              4799.88
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K
NUMA node0 CPU(s):     0-3,8-11
NUMA node1 CPU(s):     4-7,12-15


top - 05:37:00 up 4 days, 22:04,  2 users,  load average: 136.61, 145.42, 139.03
Tasks: 565 total,   8 running, 554 sleeping,   0 stopped,   3 zombie
Cpu(s): 28.6%us, 70.6%sy,  0.1%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.5%si,  0.0%st
Mem:  24596732k total, 13172200k used, 11424532k free,   630632k buffers
Swap:  2097144k total,        0k used,  2097144k free,  7648348k cached
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  4850 mysql     15  -5 12.4g 1.1g 6036 S 1545.1  4.7  12992:15 mysqld
  15846 root      20   0  162m  22m  916 R  4.2  0.1   0:00.62 lfd
  15509 apache    20   0  632m 129m 5460 S  3.0  0.5   0:01.59 httpd
  15276 apache    20   0  632m 128m 5504 R  2.7  0.5   0:01.85 httpd
  15505 apache    20   0  634m 130m 5460 R  2.1  0.5   0:01.49 httpd
  15792 apache    20   0  630m 125m 4816 S  2.1  0.5   0:00.43 httpd
  3058 nginx     20   0 76576  34m 2268 S  1.8  0.1 107:48.32 nginx
  15585 apache    20   0  632m 128m 5268 S  1.8  0.5   0:01.25 httpd
  15827 apache    20   0  629m 124m 3752 S  1.8  0.5   0:00.10 httpd


cat /proc/meminfo
MemTotal:       24596732 kB
MemFree:        13807688 kB
Buffers:         1108524 kB
Cached:          4888972 kB
SwapCached:            0 kB
Active:          4929640 kB
Inactive:        3225108 kB
Active(anon):    1523440 kB
Inactive(anon):   635484 kB
Active(file):    3406200 kB
Inactive(file):  2589624 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097144 kB
SwapFree:        2097144 kB
Dirty:             16032 kB
Writeback:             0 kB
AnonPages:       2114752 kB
Mapped:            52792 kB
Shmem:              1648 kB
Slab:            2155004 kB
SReclaimable:    2028484 kB
SUnreclaim:       126520 kB
KernelStack:        5184 kB
PageTables:       105004 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    14395508 kB
Committed_AS:   16484584 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      463816 kB
VmallocChunk:   34345823536 kB
HardwareCorrupted:     0 kB
AnonHugePages:    800768 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        5696 kB
DirectMap2M:     2082816 kB
DirectMap1G:    23068672 kB


my.cnf
[mysqld]
tmpdir=/var/tmpfs
local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
#general_log=1
slow_query_log= 0
long_query_time =9
log_queries_not_using_indexes =0
max_connections = 400
key_buffer_size = 256M
myisam_sort_buffer_size = 256M
myisam_max_sort_file_size = 2048M
max_heap_table_size = 600M
tmp_table_size = 600M
read_buffer_size = 320M
sort_buffer_size = 320M
join_buffer_size = 3G
table_definition_cache = 8000
table_open_cache = 220000
thread_cache_size = 384
wait_timeout = 50
interactive_timeout = 30
connect_timeout = 10
max_allowed_packet = 265M
max_seeks_for_key = 1000
group_concat_max_len = 1024
max_length_for_sort_data = 1024
net_buffer_length = 16384
max_connect_errors = 100000
concurrent_insert = 2
read_rnd_buffer_size = 786432
bulk_insert_buffer_size = 8M
query_cache_limit = 256M
query_cache_size = 200M
query_cache_type = 1
query_prealloc_size = 262144
query_alloc_block_size = 65536
range_alloc_block_size = 4096
transaction_alloc_block_size = 8192
transaction_prealloc_size = 4096
default-storage-engine = MyISAM
open_files_limit = 3G
max_write_lock_count = 8
innodb_open_files = 500
innodb_data_file_path= ibdata1:10M:autoextend
innodb_buffer_pool_size = 60M
innodb_additional_mem_pool_size = 32M
innodb_log_files_in_group = 2
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_thread_concurrency = 0



trafic shown by phpmyadmin for just one hour and half
Trafic réseau depuis le démarrage : 123 Gio

Ce serveur MySQL fonctionne depuis 0 jours, 1 heures, 33 minutes et 58 secondes. Il a démarré le Jeu 28 Janvier 2016 à 13:21.
Trafic  ø par heure
Reçu    445 Mio 284,2 Mio
Envoyé  122,6 Gio   78,3 Gio
Total   123 Gio 78,6 Gio
Connexions  ø par heure %
max. de connexions simultanées  170 ---     ---
Tentatives échouées 3 253   2 077,12    0,55%
Arrêts prématurés   306     195,39  0,05%
Total   591 k   377,53 k    100,00%

答案1

谢谢,将 myisam 表更改为 innodb 解决了问题,现在 mysql CPU 最多为 300%,正常负载平均峰值为 5%

相关内容