MySQL增加线程缓存大小

  MySQL增加线程缓存大小

  连接管理器线程处理服务器监听的网络接口上的客户端连接请求。连接管理器线程将每个客户端连接与专用于它的线程关联,该线程负责处理该连接的身份验证和所有请求处理。因此,线程和当前连接的客户端之间是一对一的比例。确保线程缓存足够大以容纳所有传入请求是非常重要的。

  MySQL提供了许多与连接线程相关的服务器变量:

  线程缓存大小由 thread_cache_size系统变量决定。默认值为0(无缓存),这将导致为每个新连接设置一个线程,并在连接终止时需要处理该线程。如果希望服务器每秒接收数百个连接请求,那么应该将 thread_cache_size设置的足够高,以便大多数新连接可以使用缓存线程。可以在服务器启动或运行时设置 max_connections的值。

  还应该监视缓存中的线程数( Threads_cached)以及创建了多少个线程,因为无法从缓存中获取线程( Threads_created)。关于后者,如果 Threads_created继续以每分钟多于几个线程的增加,请考虑增加 thread_cache_size的值。

  使用MySQL show status命令显示MySQL的变量和状态信息。这里有几个例子:

  SHOW GLOBAL STATUS LIKE '%Threads_connected%'; +-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 2 | +-------------------+-------+ SHOW GLOBAL STATUS LIKE '%Threads_running%'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | Threads_running | 1 | +-----------------+-------+

  Monyog线程缓存监测

  Monyog提供了一个监控线程缓存的屏幕,名为“线程”。与MySQL线程相关的服务器变量映射到以下Monyog指标:

  thread_cache_size:可以缓存的线程数。

  Threads_cached:缓存中的线程数。

  Threads_created:创建用于处理连接的线程.

  Monyog线程屏幕还包括“线程缓存命中率”指标。这是一个提示线程缓存命中率的指标。如果值较低,则应该考虑增加线程缓存。在状态栏以百分比形式显示该值;它的值越接近100%越好。

  如果这些指标的值等于或超过指定值,则可以将每一个指标配置为发出警告和/或严重警报。

  其他相关的服务器变量

  除了上述指标以外,还应该监控以下内容:

  InnoDB缓冲池大小 : InnoDB缓冲池大小在使用InnoDB的MySQL数据库中起着至关重要的作用。缓冲池同时缓存数据和索引。它的值应该尽可能的大,以确保数据库使用内存而不是硬盘驱动器进行读取操作。 临时表大小 : MySQL使用maxheaptablesize和tmptable_size中较小的一个来限制内存中临时表的大小。拥有较大的值可以帮助减少在磁盘上创建临时表的数量,但也会增加服务器内存容量的风险,因为这个指标适用于每个客户端。一般来说,32M到64M是建议的值,从这两个变量开始并根据需要进行调优。 InnoDB日志缓冲区大小 : MySQL每次写入日志文件时,它都会利用可用于处理销售数据的重要系统资源。因此,将InnoDB日志缓冲区大小设置为较大值才有意义。这样,服务器在大型事务中写入磁盘的次数就减少了,从而最大限度地减少了这些耗时的操作。64M是这个变量的一个很好的起点。 结论

  虽然即便是最大的公司网站也会因宕机而遭受损失,但这种影响对于处理网上销售的中小型企业尤其关键。根据 最近的一份调查报告 显示,一分钟的宕机导致企业平均损失约5000美元。不要让你的业务成为那种统计数据(因为宕机造成的损失)的一部分。在假日繁忙之前,主动调优MySQL数据库服务器(S)并收获回报吧!




卖贝商城更多商品介绍:百度360好搜百科词条创建     21CN生活热销软文营销推广    叶子猪游戏首页热销软文营销