10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

MySQL 8.0参考手册/MySQL性能模式/性能架构内存分配模型

27.17性能架构内存分配模型

Performance Schema使用这种内存分配模型:

  • 可以在服务器启动时分配内存

  • 可以在服务器操作期间分配额外的内存吗

  • 在服务器操作期间从不释放内存(虽然它可能被回收)

  • 释放关机时使用的所有内存

其结果是放松内存约束,从而可以使用更少的配置来使用Performance Schema,并减少内存占用,从而使消耗随着服务器负载的增长而增长。使用的内存取决于实际看到的负载,而不是估计或显式配置的负载。

除非您想在内存分配的显式限制,否则不需要明确配置若干性能架构尺寸尺寸,并且不需要明确配置:

performance_schema_accounts_size performance_schema_hosts_size performance_schema_max_cond_instances performance_schema_max_file_instances performance_schema_max_index_stat performance_schema_max_metadata_locks performance_schema_max_mutex_instances performance_schema_max_prepared_statements_instances performance_schema_max_program_instancesPerformance_schema_max_rwlock_instances performance_schema_max_socket_instances performance_schema_max_table_handles performance_schema_max_table_instances performance_schema_max_table_lock_stat performance_schema_max_thread_instances performance_schema_users_size

对于自动缩放参数,配置是这样的:

  • 使用设置为-1(默认值)的值,该参数是AutoScaled:

    • 最初,相应的内部缓冲区是空的,并且没有分配内存。

    • 随着性能模式收集数据,内存被分配在相应的缓冲区中。缓冲区大小是无界的,并且可以随着负载而增长。

  • 将值设置为0:

    • 最初,相应的内部缓冲区是空的,并且没有分配内存。

  • 值设置为N> 0:

    • 最初,相应的内部缓冲区是空的,并且没有分配内存。

    • 由于性能模式收集数据,内存在相应的缓冲区中分配,直到缓冲区大小达到N

    • 一旦缓冲区大小到达N,不再分配内存。性能模式为该缓冲区收集的数据将丢失,任何相应的数据也将丢失失去了实例计数器递增。

要查看Performance Schema使用了多少内存,请检查为此目的而设计的工具。Performance Schema在内部分配内存,并将每个缓冲区与专用工具关联起来,这样内存消耗就可以跟踪到各个缓冲区。以前缀命名的仪器内存/ performance_schema /公开为这些内部缓冲区分配了多少内存。缓冲区对于服务器是全局的,因此工具只在memory_summary_global_by_event_name表,而不是在其他memory_summary_by_XXX._by_event_name表。

此查询显示与内存仪器相关联的信息:

选择* from performence_schema.memory_summary_global_by_event_name,其中event_name喜欢'memory / performence_schema /%';