首页 > 代码库 > yconsole使用说明
yconsole使用说明
依赖:主要是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).
#默认的读取配置中心的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
参数:
#添加一个cacheid。
#修改一个cacheid对应的cache实例
#删除一个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对应的内容创建一个新的cacheid
#快速修复命令。检测一个(或所有)cacheid是否至少存在一个活跃的实例,如果没有,就分配fix-size大小的空间给它。
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 | all: string,指定cacheid,当为all时,代表所有cacheid。
fix-size(int, Gb,0): int,指定分配多少可用空间给那些有故障的cacheid。当为0时,只检测状态,不分配空间。
From WizNote
yconsole使用说明
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。