- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Percona XtraDB Cluster之流量控制由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
什么是流量控制?
Percona XtraDB Cluster具有一种称为流控制的自调节机制。该机制有助于避免集群中最弱/最慢的成员明显落后于集群中其他成员的情况.
当集群成员在写数据很慢(同时又继续从群集组通道接收写集)时,传入/接收队列的大小会增加。如果此队列超过设置的阈值(gcs.fc_limit),则该节点将发出FLOW_CONTROL消息,要求其他成员放慢或暂停处理.
gcs.fc_limit 。
此设置控制何时启用流量控制。 简而言之,如果wsrep_local_recv_queue在给定节点上超过此大小,则将发送暂停的流控制消息.
fc_limit默认为16个事务。 这实际上意味着,这可以使给定节点位于从集群提交事务的后面.
gcs.fc_master_slave 。
如果禁用了fc_master_slave(默认情况下),则会动态修改fc_limit。 该模式实际上是根据集群中节点的数量动态调整fc_limit的。 群集中的节点越多,计算出的fc_limit越大。 其背后的理论是,集群获得的规模越大(并且可能来自更多节点的写操作越忙),每个节点的应用空间就越远.
如果仅写入PXC中的单个节点,则建议您通过设置fc_master_slave = YES来禁用此功能。 无论是否动态调整fc_limit的大小,此设置实际上只不过是要更改。 它没有任何其他能力可以帮助PXC中的单节点提高更好的写能力.
gcs.fc_factor 。
如果fc_limit控制何时启用流控制,则fc_factor在释放时进行寻址。 该系数是介于0.0到1.0之间的数字,该数字乘以当前的fc_limit(如果fc_master_slave = NO,则通过上述计算进行调整)。 这样就产生了在节点发出另一条流控制消息之前,recv队列必须降至低于事务级别的事务数,该消息向群集授予了继续复制的权限.
fc_factor默认为0.5,这意味着在恢复复制之前,队列必须降至fc_limit的50%以下。 在这种情况下,较大的fc_limit可能意味着要等待很长时间才能再次放松流量控制。 但是,最近将此值修改为默认值1.0,以允许复制尽快恢复.
对于最终用户来说,流控是透明的,但是对于集群管理员而言,重要的是要知道节点是否在使用流控制。如果是这样,它将影响整个群集的生产率.
查找节点是否处于流控制中 。
FLOW_CONTROL不是持久状态。队列大小超过设置的阈值后,节点将进入FLOW_CONTROL。一旦队列大小回到低端水平以下,它将再次释放.
如何看待较高和较低的阈值 。
从Percona XtraDB Cluster 5.7.17-29.20开始,现在可以通过SHOW STATUS来查看较低和较高阈值:
mysql> show status like 'wsrep_flow_control_interval'; 。
+-----------------------------+----------------+ 。
| Variable_name | Value | 。
+-----------------------------+----------------+ 。
| wsrep_flow_control_interval | [ 3547, 3547 ] | 。
+-----------------------------+----------------+ 。
1 row in set (0.01 sec) 。
如您所见, 。
wsrep_flow_control_interval状态变量发出一个范围,该范围代表较低和较高的水平。值集(3547, 3547)表示如果传入队列大小大于3547,则启用FLOW_CONTROL。如果大小小于3547,则释放FLOW_CONTROL.
尽管如此,这仍无法显示节点在任何给定时刻是否正在使用FLOW_CONTROL.
为了解决这个问题,PXC在版本中同时引入了wsrep_flow_control_status状态变量。此布尔值状态变量告诉用户该节点是否在FLOW_CONTROL中。一旦节点处于流控制之外,则当节点采用流控制时,变量将切换为OFF,反之则为ON:
mysql> show status like '%flow%'; 。
+-------------------------------------------------------+----------------+ 。
| Variable_name | Value | 。
+-------------------------------------------------------+----------------+ 。
| Innodb_scrub_background_page_split_failures_underflow | 0 | 。
| Ssl_session_cache_overflows | 370780 | 。
| Table_open_cache_overflows | 0 | 。
| wsrep_flow_control_paused_ns | 7056357841773 | 。
| wsrep_flow_control_paused | 0.000901 | 。
| wsrep_flow_control_sent | 0 | 。
| wsrep_flow_control_recv | 176 | 。
| wsrep_flow_control_interval | [ 3547, 3547 ] | 。
| wsrep_flow_control_interval_low | 3547 | 。
| wsrep_flow_control_interval_high | 3547 | 。
| wsrep_flow_control_status | OFF | 。
+-------------------------------------------------------+----------------+ 。
最后,wsrep_flow_control_sent / recv计数器可用于跟踪FLOW_CONTROL状态。这显示了流控制启动的总次数。您可以使用FLUSH STATUS清除它们.
mysql> show global status like 'wsrep_flow%'; 。
+----------------------------------+----------------+ 。
| Variable_name | Value | 。
+----------------------------------+----------------+ 。
| wsrep_flow_control_paused_ns | 6893631531679 | 。
| wsrep_flow_control_paused | 0.000413 | 。
| wsrep_flow_control_sent | 5366 | 。
| wsrep_flow_control_recv | 5369 | 。
| wsrep_flow_control_interval | [ 3547, 3547 ] | 。
| wsrep_flow_control_interval_low | 3547 | 。
| wsrep_flow_control_interval_high | 3547 | 。
| wsrep_flow_control_status | OFF | 。
+----------------------------------+----------------+ 。
。
mysql> flush status 。
。
mysql> show global status like 'wsrep_flow%'; 。
+----------------------------------+----------------+ 。
| Variable_name | Value | 。
+----------------------------------+----------------+ 。
| wsrep_flow_control_paused_ns | 6893631531679 | 。
| wsrep_flow_control_paused | 0.000413 | 。
| wsrep_flow_control_sent | 0 | 。
| wsrep_flow_control_recv | 0 | 。
| wsrep_flow_control_interval | [ 3547, 3547 ] | 。
| wsrep_flow_control_interval_low | 3547 | 。
| wsrep_flow_control_interval_high | 3547 | 。
| wsrep_flow_control_status | OFF | 。
+----------------------------------+----------------+ 。
原文地址:https://www.toutiao.com/i6937214302738711072/ 。
最后此篇关于Percona XtraDB Cluster之流量控制的文章就讲到这里了,如果你想了解更多关于Percona XtraDB Cluster之流量控制的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
This post说: If you’re running Innodb Plugin on Percona Server with XtraDB you get benefit of a great
什么是流量控制? Percona XtraDB Cluster具有一种称为流控制的自调节机制。该机制有助于避免集群中最弱/最慢的成员明显落后于集群中其他成员的情况。 当集群成员在
我们有一个Percona Xtradb-v2集群,其中包含3个节点。 当我们关闭节点2和3,仅剩下节点1时,一切都在工作并同步进行。节点保持关闭一周,在此期间数据库大小增加了100GB。 当我们尝试重
我已经设置了具有 3 个节点的 Percona Xtradb 集群。第一个节点使用 bootstrap 启动正常,但是当我尝试启动第二个节点加入集群时,出现以下错误: 2015-08-27 18:08
我无法使用 google 或 Stack Overflow 找到这个问题的答案,所以熟悉 Percona XtraDB 的人也许可以帮助回答这个问题。我完全理解如何发生意外死锁,如本文所述,解决方案是
带有 XtraDB 的 Percona Server 的主要优点之一是比常规 MySQL 增强了可扩展性。有谁知道 Percona/XtraDB 和 MySQL 之间给定表存储在磁盘上的数据如何比较,
我们正在运行 Percona XtraDB 集群,集群中有 4 台机器。我注意到我们的主键列(自动增量列)中有随机数间隙。例如: id created_at title artist alb
我有 Percona Xtradb Cluster 在容器上运行。 我停止了容器然后又启动了它。 我有错误: 2017-02-11T13:12:00.423566Z 0 [ERROR] Found 1
我们有一个应用程序,它包含所有连接到同一个 Percona 数据库实例的微服务。目前它只是一个 16 核/32 GB 内存的实例,没有复制。我们的一个问题是,有时我们的一个微服务会对数据库造成如此高的
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们正在使用 3node percona-xtradb 集群。现在我们计划在所有 3 个节点中再添加一个实例,并将其作为另一个集群组。如何使用percona xtradb集群设置多实例? 最佳答案 我
我们有MySQL 4个master masters和每个master运行MySQL的几个read slaves。我们使用 InnoDB,我们应该寻找 XtraDB 吗? 我们必须能够对每秒许多评论进行
今天在 serverfault 上我读到了 XtraDB。我读到它是 innoDB 的一个分支,我想知道差异有多大?如果我尝试一下,我会注意到变化吗?还是您认为这只是浪费时间? 最佳答案 XtraDB
我在 ubuntu 12.04 计算机上运行了三个 Percona xtradb 节点。我想在不断开 eth0 的情况下停止其中一个节点。 我试过:$ service mysql stop 和$/et
我有两个 pxc 集群,每个集群由 3 个 mysql 服务器组成。 PXC1(node1,node2,node3) 有 db1 和 db2,PXC2(node4,node5,node6) 有 db2
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我需要一些帮助。如何在 docker-compose 上将 Percona XtraDB Cluster 引导为第一个节点? 我有这个 my.cnf 文件 wsrep_provider=/usr/li
主要问题 - 是否可以将 HandlerSocket 与 PXC 一起使用?我注意到在高负载期间,套接字崩溃相当频繁,并出现错误 HNDSOCK unlock tables: commit faile
我们的系统目前有一个 Percona 5.6 XtraDb 集群,配置了 3 个数据库节点和一个 ha 代理服务器。 整个设置运行良好。 我们需要将 SphinxSE 插件添加到我们已经运行的服务器中
我正在 AWS 环境中评估包含 3 个节点的 Percona xtradb 5.6 集群。我使用 ec2-confirm-snapshot 和 --mysql 来制作数据的 EBS 快照。但是,当在节
我是一名优秀的程序员,十分优秀!