MariaDB内存使用率低

时间:2018-08-16 07:25:25

标签: wordpress performance caching woocommerce mariadb

我正在使用32GB RAM的专用服务器上运行woocommerce安装。 服务器使用CentOS,nginx,php-fpm(带有opcache和apcu的版本7)和MariaDB。

服务器在日常电子商务操作中的表现非常出色。 我还在运行一个用于产品导入的自定义脚本,该脚本会进行大量密集的查询(使用库存,价格,说明和其他元信息来更新6-20种变化的产品)。

我一直在测量脚本的执行时间,它的运行时间最长为80秒。

问题在于,在最后几天中,脚本的运行速度极其缓慢,平均大约需要1500秒。

服务器或脚本本身没有更改。 我发现的唯一问题是,当脚本运行时,mariadb使用100%cpu(以前没有这种情况)。

这是my.cnf

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid


innodb_buffer_pool_size = 13G
innodb_buffer_pool_instances = 8

innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_file_per_table = 1

tmp_table_size = 128M
max_heap_table_size = 128M

table_open_cache = 4000
table_definition_cache = 4000

key_buffer_size = 64M

thread_cache = 64

query_cache_type = 1
query_cache_limit = 4M
query_cache_size = 64M

服务器似乎没有使用任何可用的内存,在脚本执行过程中,服务器仅使用了32GB可用内存中的768mb。

MariaDB在开始时必须使用13GB,这不是inno_db_pool_size的意义吗?

2 个答案:

答案 0 :(得分:0)

要确定脚本的哪些部分较慢,请启用slow query log

您在脚本中执行的查询与表结构,大小和索引(SHOW CREATE TABLE {tbl} / SHOW INDEXES FROM {tbl})相结合将确定其速度。

您的表很可能没有使用Innodb。要查看他们正在使用什么:

SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE
FROM   information_schema.TABLES
WHERE  TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema', 'sys');

答案 1 :(得分:0)

仅供大家参考,我才发现问题所在。

我正在遍历woocommerce中每种产品的所有变体,并且正在更新一些元数据(价格,库存等)。 问题在于,在每个变体循环之后,我都执行了wp_flush_cache,因此在下一个循环中,WordPress再次从数据库中获取了每条信息。

注释上述行将执行时间从1500秒减少到30秒。

所以问题绝不在于mariadb。

相关问题