介绍:

yconsole是yhd用于管理缓存的工具(python实现),它的主要功能是为各个应用分配和管理缓存,以及错误修复。和它配合使用的还有ycache-client、yagent、zookeeper。参见:ycache分布式缓存框架

当应用需要缓存时,仅需要说需要多少空间的缓存,然后yconsole会从缓存系统中按照一定策略分配缓存空间给这个应用。这个缓存空间用一个"cache-id"表示,应用仅需要在ycache-client中配置这个cacheid,就能使用这些缓存。应用不需要知道缓存在哪里,ip是什么,它只知道自己拥有这么多的缓存空间并总是能使用的。

依赖:主要是zk的client:kazoo



import os, sys, subprocess,time
import threading
from kazoo.client import KazooClient
from kazoo.exceptions import *
 
定制参数:

#指定是memcached或者redis,同时也是zk上的对应的目录名称。
YCONSOLED_MODE           = "ycache"     #It should be "redis" for redis, while "ycache" for memcached. 
#对外显示的程序名字,没什么用。
YCONSOLED_NAME           = "yconsole"  #Program name for log.
#操作缓存的粒度(或者说单位)。也就是在命令行指定1,对应的缓存大小。
CACHE_GRANULAR           = 1024  #defautl granularity for cache size (to Mb).
#是否允许指定已经被其他cacheid分配的实例,然后将其分配给另一个cachid;
ALLOW_USE_ASSIGNED       = False       #Whether allow to assigned an instance to different cache id when the instance is specified by command. 
是否允许使用状态为deactive的实例
ALLOW_USE_DEACTIVE       = False       #Whether allow to assigned a deactive instance  when the instance is specified by command. 
是否打印颜色。不支持打印颜色的可以设置为fasle,否则会有乱码。颜色就是特殊字符。
PRINT_PRETTY             = True        #Print with color.
 
#默认的读取配置中心的url。仅用于读取zk的地址。读取优先级为:
  #1 当前目录的yconsole.conf配置文件(例如:zoo_svr=127.0.0.1:2181)
  #2 这个路径配置文件:/etc/ycache/yagent/yagent.conf
  #3 到下面的配置文件找配置中心的zk服务器。
DEFAULT_ENV_INI_FILE     = "/var/www/config/env.ini"   #for getting zk server address.
#重试次数,基本上没用
OPERATION_RETRY          = 3
 
配置说明:

  yconsole [ ls    | list-cacheid   ]

# 显示所有的cacheid对应的cache实例,以及实际占用的cache总空间,以及当前可用空间。如果有任何一个实例为deactive,则高亮;如果所有实例都deactive,则标红加粗;
 

 
   yconsole [ lspc  | list-machine   ]

# 显示所有的server的状态、信息、对应的cache实例,以及每个实例对应的cacheid。

   yconsole [ lsser | list-server    ]

# 显示所有的server的状态、信息(包括实例总数,yagent版本,cache版本,cache实例大小,分组,优先级,服务器位置),如果这个server为down,则标红加粗。
 
 
  yconsole [ rmid  | remove-cacheid ] cacheid

参数:

  cacheid: string, 要删除的cacheid

#删除一个cachid。其实就是把zk上对应的节点删除。

   yconsole [ rmser | remove-server  ] ServerIP

参数:

ServerIP   : string, 要删除的服务器ip

#删除一台服务器。

其实就是把zk上对应的节点删除。注意:只有在这台服务器上的实例没有被使用,才能被删除;


   yconsole [ add   | add-cacheid    ] cacheid size(int,Gb) [min(0) max(4) [group(default) [priority(100) ] ] ]

#添加一个cacheid。
参数:

cacheid : string,cacheid的名字,应该以pool名字为前缀,方便管理;

   size: int,指定要分配cache的大小(以CACHE_GRANULAR为单位)  
   min(0) max(4):指定要分配的单个cache实例大小的范围。默认为[0,4]
   group(default):指定要从那个分组的服务器分配cache实例,默认是default分组
   priority(100) :指定要从大于某个优先级的服务器上分配实例,默认是100.
 
如果存在很多满足上面参数要求的实例,在选择每一个实例时,则按照以下偏好分配:
分配优先级:
   Cache instances are assigned bias on a cache server as following:
     1. Least number of instance have been assigned; or   优先这个cachid使用最少cache实例的服务器的实例;否则
     2. Largest priority; or  优先使用优先级高的服务器的实例;否则
     3. Largest number of available instance  优先使用可用实例最多的实例; 否则
     4. Largest cache size 优先使用cache空间大的实例;否则
     5. use the cache with smaller ip address.   使用ip地址小的cache实例

   yconsole [ mod   | mod-cacheid    ] cacheid instance1,instance2...

#修改一个cacheid对应的cache实例
参数:

  cacheid: string, 要删除的cacheid
  cacheid instance1,instance2... :string, 新的cache实例,例如192.1.1.1:8888,192.2.2.2:9999

   yconsole [ app   | append-cacheid ] cacheid {instance1,...| size(int, Gb)} [min(0) max(4) [group(default) [priority(100) ] ] ] 

   #向一个cacheid添加cache实例。

参数:
   cacheid : string,cacheid的名字,应该以pool名字为前缀,方便管理;
   size: int,指定要分配cache的大小(以CACHE_GRANULAR为单位)  
   cacheid instance1,instance2... :string, 新的cache实例,例如192.1.1.1:8888,192.2.2.2:9999   
   min(0) max(4):指定要分配的单个cache实例大小的范围。默认为[0,4]
   group(default):指定要从那个分组的服务器分配cache实例,默认是default分组
   priority(100) :指定要从大于某个优先级的服务器上分配实例,默认是100.


    yconsole [ cop   | copy-cacheid   ] fCacheid toCacheid...

#用一个旧的cacheid对应的内容创建一个新的cacheid
参数:

fCacheid    : string, 源cacheid

   toCacheid    : string, 新cacheid   

   yconsole [ fix   | fix-cacheid    ] [Cacheid | all] [fix-size(int, Gb,0)]

#快速修复命令。检测一个(或所有)cacheid是否至少存在一个活跃的实例,如果没有,就分配fix-size大小的空间给它;如果一个cacheid仅有一个实例,则高亮这个cacheid
参数: 
    Cacheid | all: string,指定cacheid,当为all时,代表所有cacheid。
    fix-size(int, Gb,0): int,指定分配多少可用空间给那些有故障的cacheid。当为0时,只检测状态,不分配空间。

 
yconsole [ test  | test-cacheid   ] [Cacheid | all] [set-delay(int,ms,10),get-delay(int,ms,10)]

参数: 
    Cacheid | all: string,指定cacheid,当为all时,代表所有cacheid;
    set-delay(int,ms,10): set操作延时的阈值,超过了会认为是warning
    get-delay(int,ms,10):get操作延时的阈值,超过了会认为是warning


 
 
 

yconsole使用说明的更多相关文章

  1. ycache分布式缓存框架

    介绍   ycache是yhd的分布是缓存框架,设计目的是提供易扩展.高可靠的分布式缓存系统.ycache从全局视角分配和管理缓存,检测缓存的状态并做故障恢复.   当应用(应用:使用ycache的上 ...

  2. yagent使用说明

    介绍   yagent是ycache的一个组件,用于管理memcached或redis的缓存实例.主要功能包括启动cache实例.将cache实例的信息写到zk上给yconsole使用.检测cache ...

  3. Atitit.项目修改补丁打包工具 使用说明

    Atitit.项目修改补丁打包工具 使用说明 1.1. 打包工具已经在群里面.打包工具.bat1 1.2. 使用方法:放在项目主目录下,执行即可1 1.3. 打包工具的原理以及要打包的项目列表1 1. ...

  4. awk使用说明

    原文地址:http://www.cnblogs.com/verrion/p/awk_usage.html Awk使用说明 运维必须掌握的三剑客工具:grep(文件内容过滤器),sed(数据流处理器), ...

  5. “我爱背单词”beta版发布与使用说明

    我爱背单词BETA版本发布 第二轮迭代终于画上圆满句号,我们的“我爱背单词”beta版本已经发布. Beta版本说明 项目名称 我爱背单词 版本 Beta版 团队名称 北京航空航天大学计算机学院  拒 ...

  6. Oracle 中 union 和union all 的简单使用说明

    1.刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟.今天我们来了解一下union和union all的简单使用说明.Union(union all): 指令的目的是将两个 S ...

  7. Map工具系列-02-数据迁移工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  8. Map工具系列-03-代码生成BySQl工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  9. jQuery验证控件jquery.validate.js使用说明

    官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation jQuery plugin: Validation 使用说明 转载 ...

随机推荐

  1. qt webengineview 设置背景颜色

    当使用qwebengineview加载网页的使用,可以通过网页端的css设置网页的显示效果 但是当窗口大小改变的时候,你会发现网页的resize速度赶不上窗口的resize速度,这是会出现白色空白,而 ...

  2. 帝国cms 通过tags给产品或者新闻进行分类

    1.增加TAGS分类 先找到栏目== >TAGS管理 == > 管理TAGS分类 == >增加分类 2.增加相关的tag标签,也要选好TAGS分类 3.增加自定义标签模板 具体怎么写 ...

  3. JavaScript里面9种数组遍历!

    ​大家好,我在这里总结分享了JavaScript中的闹腾的数组循环家族. 1.大家最常用的for循环,我就不解释了: for(let i = 0; i < 5 ; i++){ console.l ...

  4. 多线程编程-- part5.1 互斥锁之公平锁-释放锁

    释放公平锁 1.unlock() unlock()在ReentrantLock.java中实现的,源码如下: public void unlock() { sync.release(1); } 说明: ...

  5. Eclipse集成spring-tool-suite(STS)

    1.官方下载 sts是spring官方在eclipse基础上加了很多插件之后封装的开发工具.sts与eclipse完全一样,但是多了很多插件,比如maven,使用起来更加方便.如果使用eclipse自 ...

  6. oracle服务端字符集

    一.oracle服务端字符集 SQL> select userenv('language') from dual ; USERENV('LANGUAGE')------------------- ...

  7. cassandra分页

    在cassandra的协议中,没有具体规定查询结果的行数限制.但是对于大的数据集,依然有结果分页的必要.过大的结果集会爆掉服务端或者客户端的内存. 传统的分页方法采用了一点trick,采用了token ...

  8. 图书管理系统UML建模

    图书管理系统UML建模 用例图 借阅者请求服务用例图 图书管理员处理借书还书用例图 系统管理员系统维护用例图 时序图 系统管理员添加书籍时序图 协作图 借阅者预留书籍协作图 状态图 书的状态图 活动图 ...

  9. 标准C语言(8)

    指针变量用来记录地址数据,指针变量的用途就是找到另外一个变量,没有记录有效地址的指针不能用来找到其它变量,声明指针变量时必须在变量名称前写*.如果一个指针变量记录了另外一个变量的地址就可以认为它们之间 ...

  10. Java验证身份证是否合法

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; im ...