这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

管理系统资源使用率

您可以使用 使用系统表 来跟踪群集上的总体资源使用情况。Vertica 系统表中介绍了这些系统表和其他系统表。

如果您的查询因资源不可用而遇到错误,则可使用以下系统表获取更多详细信息:

当某种类型的资源请求被拒绝时,请执行以下操作之一:

  • 通过添加更多内存、更多磁盘空间等措施增加节点上的可用资源。请参阅管理磁盘空间

  • 通过减少系统上的用户数(请参阅管理会话)、重新安排操作等措施减少资源需求。

RESOURCE_REJECTIONS 中的 LAST_REJECTED_VALUE 字段指示问题原因。例如:

  • 消息 Usage of a single requests exceeds high limit 表示系统没有可用于单个请求的足够资源。当文件处理限制设置得过低且您正在加载包含大量列的表时,通常会出现上述情况。

  • 消息“等待资源预留超时或已取消等待资源预留 (Timed out or Canceled waiting for resource reservation)”通常表示资源争夺过于激烈,因为硬件平台无法支持使用它的并发用户数。

1 - 管理会话

Vertica 为数据库管理员提供了用于查看和控制会话的强大方法。具体方法因会话类型而异:

  • 外部(用户)会话通过 vsql 或编程式(ODBC 或 JDBC)连接启动,并且具有关联的客户端状态。

  • 内部(系统)会话由 Vertica 启动,但没有客户端状态。

配置最大会话数

每个节点的最大用户会话数由配置参数 MaxClientSessions 设置,默认值为 50。您可以将 MaxClientSessions 参数设置为 0 到 1000 之间的任何值。除了这个最大值外,Vertica 还允许每个节点最多五个管理会话。

例如:

=> ALTER DATABASE DEFAULT SET MaxClientSessions = 100;

查看会话

系统表 SESSIONS 包含有关用户会话的详细信息,每个会话将返回一行。超级用户可以无限制地访问所有数据库元数据。其他用户的访问权限因他们的权限而异。

中断和关闭会话

您可以使用 Vertica 函数 INTERRUPT_STATEMENT 中断正在运行的语句。中断正在运行的语句会将会话返回到空闲状态:

  • 没有语句或事务正在运行。

  • 没有保留任何锁。

  • 数据库不代表会话做任何工作。

关闭用户会话将中断该会话并处置与其相关的所有状态,包括用于目标会话的客户端套接字连接。以下 Vertica 函数关闭一个或多个用户会话:

SELECT 用来调用这些函数的 SELECT 语句在中断或关闭消息传递到所有节点后返回。该函数可能会在 Vertica 完成中断或关闭操作的执行之前返回。因此,在语句返回之后以及在中断或关闭操作在整个群集中生效过程中可能存在一个延迟。若要确定会话或事务是否结束,请查询 SESSIONS 系统表。

为了关闭数据库,您必须首先关闭所有用户会话。有关数据库关闭的更多信息,请参阅停止数据库

2 - 管理加载流

您可以使用系统表 LOAD_STREAMS 在数据加载到群集时对数据进行监控。此表中的几列显示每个节点上每个加载流的指标,包括:

取决于数据大小,在 PARSE_COMPLETE_PERCENT 达到 100% 的时间与 SORT_COMPLETE_PERCENT 开始增长的时间之间可能会出现明显的滞后。