【发布时间】:2018-03-14 10:48:15
【问题描述】:
我们的 MariaDB 服务器突然开始使用我们加密数据库上的所有可用 CPU。 不过,它似乎对性能没有影响。
这似乎是一个线程锁定问题,将 innodb-encryption-threads 从 4 设置为 1 可以解决该问题。 这对应于使用所有 cpu 的 4 个线程(双核上每个线程 50%)。
一个有问题的线程上的strace 充满了这个:
futex(0x561733657bc4, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x561733657b60, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x561733657b60, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fb4ede24af0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 0, {tv_sec=1520416318, tv_nsec=32097000}, 0xffffffff) = 0
futex(0x7fb4ede24a90, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0x7fb4ede24a90, FUTEX_WAKE_PRIVATE, 1) = 0
sched_yield()
这是什么原因造成的,我们该如何解决?
【问题讨论】:
-
你试过2个线程吗?也就是说,线程数不超过 CPU 内核数。
-
是的,它也有 2 个线程。
标签: encryption mariadb