Presto中Queue的使用总结

来源:互联网 发布:unity3d里字母 编辑:程序博客网 时间:2024/04/28 06:12
当众多开发者或是测试人员共同使用一个环境时,可能会出现某个人的大量查询把系统资源耗尽的情况,此时可以使用Queue来限制某人的最大连接数,从而达到资源平等的目的。本文对相关配置以及使用做简单的说明
  1. 配置
    1. 添加配置文件,文件格式为json文件,例如 文件叫queue_config.json,内容如下
      {
        "queues": {
          "user.${USER}": {
            "maxConcurrent": 5,
            "maxQueued": 20
          },
          "test": {
            "maxConcurrent": 2,
            "maxQueued": 3
          },
          "admin": {
            "maxConcurrent": 100,
            "maxQueued": 100
          },
          "global": {
            "maxConcurrent": 100,
            "maxQueued": 1000
          }
        },
        "rules": [
          { 
            "user": "bob",   #bob为管理员,最多可以同时进行100个查询,有100个在等待队列中
            "queues": ["admin"]
          },
          { 
            "user": "guest",#guest用户使用test的策略,最多可以同时进行2个查询,有3个在等待队列中
            "queues": ["test"]
          },
          {
            "queues": [
              "user.${USER}",
              "global"
            ] 
          }   
        ]   

    2. 修改配置,修改Presto/etc/config.properties,添加以下配置
      query.queue-config-file=/opt/PaaS/Talas/lib/Presto/etc/queue_config.json
    3. 重启Presto Server
  2. 验证
    使用多线程的方式进行验证,使用guest用户进行测试:
    1. 同时启动两个查询线程,则两个查询的状态都为running
    2. 同时启动3个查询线程,则两个查询的状态为RUNNING,一个状态为QUEUED
    3. 同时启动6个查询线程,则两个查询的状态为RUNNING,三个状态为QUEUED,还有一个为INSUFFICIENT RESOURCES
0 0