Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 查询数据库时Apache CPU 100%_Mysql_Performance_Apache_Cpu - Fatal编程技术网

Mysql 查询数据库时Apache CPU 100%

Mysql 查询数据库时Apache CPU 100%,mysql,performance,apache,cpu,Mysql,Performance,Apache,Cpu,我有一个Ubuntu服务器和10个不同框架/CMS的站点 我的问题是,当我打开一个与MySQL DB集成的大型CMS站点时,Apache2使用100%的CPU,在这些站点中,我的页面速度在10-20秒之间(用于呈现HTML页面),我真的不知道为什么。(但是所有没有MySQL连接的PHP框架都可以正常工作) 使用我的服务器支持管理器,我们可以看到我的服务器上的所有功能都很好(没有I/O问题或其他问题),并且我们认为Apache/MySQL配置中存在问题 我没有崩溃数据库表并优化所有innodb表

我有一个Ubuntu服务器和10个不同框架/CMS的站点

我的问题是,当我打开一个与MySQL DB集成的大型CMS站点时,Apache2使用100%的CPU,在这些站点中,我的页面速度在10-20秒之间(用于呈现HTML页面),我真的不知道为什么。(但是所有没有MySQL连接的PHP框架都可以正常工作)

使用我的服务器支持管理器,我们可以看到我的服务器上的所有功能都很好(没有I/O问题或其他问题),并且我们认为Apache/MySQL配置中存在问题

我没有崩溃数据库表并优化所有innodb表

当我从浏览器加载此慢速CMS时,这是一个
top
快照:

PID USER    PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
13307 www-data  20   0 90116  42m  22m R  100  4.2   0:15.23 apache2
2224 root      20   0 37932 8148 1724 S    8  0.8 212:21.99 newrelic-daemon
13422 mysql     20   0  186m  47m 6280 S    0  4.7   0:11.20 mysqld
13889 root      20   0  2640 1132  860 R    0  0.1   0:00.03 top
1 root      20   0  2796 1124  792 S    0  0.1   0:06.28 init
Newrelic屏幕截图问题(不仅适用于wordpress,还适用于所有CMS):

我的CPU信息:

$ head /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 45
model name      : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz
stepping        : 7
cpu MHz         : 2600.086
cache size      : 20480 KB
fdiv_bug        : no
hlt_bug         : no
我的记忆信息:

$ head /proc/meminfo
MemTotal:        1028476 kB
MemFree:          571424 kB
Buffers:           17920 kB
Cached:           273312 kB
SwapCached:          824 kB
Active:           232768 kB
Inactive:         180264 kB
Active(anon):     147336 kB
Inactive(anon):     5292 kB
Active(file):      85432 kB
我的Apache配置:

LockFile ${APACHE_LOCK_DIR}/accept.lock
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_prefork_module>
    StartServers          2
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients           50
    MaxRequestsPerChild   0
    </IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
    </IfModule>
<IfModule mpm_event_module>
    StartServers          2
    MinSpareThreads       5
    MaxSpareThreads      10 
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients           50
    MaxRequestsPerChild   0
    </IfModule>
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
AccessFileName .htaccess
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
    </Files>
DefaultType text/plain
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
Include mods-enabled/*.load
Include mods-enabled/*.conf
Include httpd.conf
Include ports.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
Include conf.d/
Include sites-enabled/

如何解决此问题?

您需要放置更多信息。例如,如果您尝试在wordpress中显示1000000篇文章,特别是如果您在单独的查询中获得这些文章的属性,那么您可以在很长一段时间内获得100%的CPU使用率


尝试找到导致此问题的脚本,或高使用率时刻的mysql(show processlist)和其他脚本。

您的Apache配置有很多错误-但这可能与您当前遇到的问题无关,数据库管理系统的状态也是如此——根据您提供的信息,问题出在apache上

您没有告诉我们Apache正在使用哪个MPM(这对于理解问题至关重要),也没有告诉我们使用哪个CMS


我说过您忽略的信息只是冰山一角-调查和解决性能问题非常非常复杂-可能需要数月的时间(其中大部分时间用于收集信息)-您不太可能在这里得到明确的答案。

首先,尝试找出sql引擎上的问题。调试或记录运行缓慢的查询。
[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

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

[mysqld]
user        = mysql
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
skip-external-locking
key_buffer      = 32M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 286
interactive_timeout = 25
wait_timeout = 1000
myisam-recover         = BACKUP
myisam_sort_buffer_size = 32MB
max_connections        = 400
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache            = 400
thread_concurrency     = 10
query_cache_limit   = 64M
query_cache_size        = 32M
general_log_file        = /var/log/mysql/mysql.log

log_error                = /var/log/mysql/error.log

log_slow_queries    = /var/log/mysql/mysql-slow.log
long_query_time = 4 
log-queries-not-using-indexes
log_bin         = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size         = 100M
bind-address        = 127.0.0.1

[mysqldump]
quick
quote-names
max_allowed_packet  = 16M

[mysql]

[isamchk]
key_buffer      = 32M

!includedir /etc/mysql/conf.d/