-
Notifications
You must be signed in to change notification settings - Fork 613
Tair 最小化配置方法
hurley edited this page Mar 15, 2018
·
2 revisions
Tair 编译安装完成后,目录结构如下:
root@qianyi-centos7 ~ $ tree tair_bin/
tair_bin/
├── do_dump.sh
├── do_upload.sh
├── etc
│ ├── configserver.conf.default
│ ├── dataserver.conf.default
│ └── group.conf.default
├── include
│ ├── ...
├── lib
│ ├── ...
├── sbin
│ ├── tair_cfg_svr
│ ├── tairclient
│ ├── tair_server
│ └── ...
├── set_shm.sh
└── tair.sh
Tair 并不依赖目录位置,所以任意移动或者拷贝到其他位置亦可。
下面以MDB引擎为例配置一个最小化的Tair集群(1 * ConfigServer + 1 * DataServer)
MDB 引擎默认使用共享内存,所以需要查看并设置系统的tmpfs的大小:
# 这里根据实际机器内存情况配置,必须大于Tair使用内存的配置
root@qianyi-centos7 tair_bin $ cat /etc/fstab | grep /dev/shm
tmpfs /dev/shm tmpfs rw,size=1G 0 0
# 修改了 /etc/fstab 之后必须 mount -o remount /dev/shm
root@qianyi-centos7 tair_bin $ df -h | grep /dev/shm
tmpfs 1.0G 0 1.0G 0% /dev/shm
切换到Tair安装目录,拷贝默认配置文件准备修改:
root@qianyi-centos7 tair_bin $ cp etc/configserver.conf.default etc/configserver.conf
root@qianyi-centos7 tair_bin $ cp etc/group.conf.default etc/group.conf
root@qianyi-centos7 tair_bin $ cp etc/dataserver.conf.default etc/dataserver.conf
这台测试机器的IP是10.211.55.9,以下配置请按照实际情况替换。
最终修改的文件 diff 如下,请对照修改。
- etc/configserver.conf
--- a/etc/configserver.conf.default
+++ b/etc/configserver.conf
@@ -3,8 +3,8 @@
#
[public]
-config_server=192.168.1.1:5198
-config_server=192.168.1.2:5198
+config_server=10.211.55.9:5198
+#config_server=192.168.1.2:5198
- etc/group.conf
--- a/etc/group.conf.default
+++ b/etc/group.conf
@@ -1,5 +1,5 @@
#group name
-[group_1]
+[group_test]
# data move is 1 means when some data serve down, the migrating will be start.
# default value is 0
_data_move=0
@@ -19,16 +19,16 @@ _accept_strategy=1
_allow_failover_server=0
# data center A
-_server_list=192.168.1.1:5191
-_server_list=192.168.1.2:5191
-_server_list=192.168.1.3:5191
-_server_list=192.168.1.4:5191
+_server_list=10.211.55.9:5191
+#_server_list=192.168.1.2:5191
+#_server_list=192.168.1.3:5191
+#_server_list=192.168.1.4:5191
# data center B
-_server_list=192.168.2.1:5191
-_server_list=192.168.2.2:5191
-_server_list=192.168.2.3:5191
-_server_list=192.168.2.4:5191
+#_server_list=192.168.2.1:5191
+#_server_list=192.168.2.2:5191
+#_server_list=192.168.2.3:5191
+#_server_list=192.168.2.4:5191
- etc/dataserver.conf
--- a/etc/dataserver.conf.default
+++ b/etc/dataserver.conf
@@ -3,8 +3,8 @@
#
[public]
-config_server=192.168.1.1:5198
-config_server=192.168.1.2:5198
+config_server=10.211.55.9:5198
+#config_server=192.168.1.2:5198
[tairserver]
#
@@ -25,7 +25,7 @@ mdb_type=mdb_shm
# shm file prefix, located in /dev/shm/, the leading '/' is must
mdb_shm_path=/mdb_shm_inst
# (1<<mdb_inst_shift) would be the instance count
-mdb_inst_shift=3
+mdb_inst_shift=0
# (1<<mdb_hash_bucket_shift) would be the overall bucket count of hashtable
# (1<<mdb_hash_bucket_shift) * 8 bytes memory would be allocated as hashtable
mdb_hash_bucket_shift=24
@@ -39,13 +39,13 @@ mdb_check_granularity_factor=10
port=5191
supported_admin=0
-process_thread_num=12
-io_thread_num=12
+process_thread_num=4
+io_thread_num=4
dup_io_thread_num=1
#
#mdb size in MB
#
-slab_mem_size=4096
+slab_mem_size=512
log_file=logs/server.log
pid_file=logs/server.pid
这里 slab_mem_size
控制MDB内存池的总大小,mdb_inst_shift
控制实例的个数,每个实例的大小是 slab_mem_size
/(1 << mdb_inst_shift)
MB,注意这里一个实例必须大于512MB且小于64GB
注意在CentOS 7下,安装目录下的 tair.sh 启动脚本有一行代码需要修改,diff 如下:
--- a/tair.sh
+++ b/tair.sh
@@ -52,7 +52,7 @@ check_shm_size()
if [ $engine == "mdb" ]
then
safety_free_size=500;
- tmpfs_size=`df -m |grep tmpfs | awk '{print $2}'`
+ tmpfs_size=`df -m |grep /dev/shm | awk '{print $2}'`
let "safety_size = $tmpfs_size - $safety_free_size"
slab_mem_size=`grep slab_mem_size $1 | grep -v "#" | awk -F '[ =]' '{print $NF}'`
启动实例:
root@qianyi-centos7 tair_bin $ ./tair.sh start_ds
mdb engine. tmpfs_size: 1024 safety_size: 524 slab_mem_size: 512
root@qianyi-centos7 tair_bin $ ./tair.sh start_cs
root@qianyi-centos7 tair_bin $ ps aux | grep tair
root 21828 1.5 3.0 1519244 30572 pts/0 Sl 14:51 0:00 ./sbin/tair_server -f ./etc/dataserver.conf
root 21866 0.0 0.2 411676 2856 pts/0 Sl 14:51 0:00 ./sbin/tair_cfg_svr -f ./etc/configserver.conf
客户端读写测试:
root@qianyi-centos7 tair_bin $ ./sbin/tairclient -c 10.211.55.9:5198 -g group_test
TAIR> health
server status
10.211.55.9:5191 alive
migrate ongoing
isMigrating false
server ping
10.211.55.9:5191 0.204000
TAIR> put key value
put: success
TAIR> get key
KEY: key, LEN: 5
raw data: value, \76\61\6C\75\65
TAIR> remove key
remove: success.
TAIR> get key
get failed: data not exists.
停止服务:
root@qianyi-centos7 tair_bin $ ./tair.sh stop_ds
root@qianyi-centos7 tair_bin $ ./tair.sh stop_cs
The source code is available user the GPL version 2. We are avtively looking for contributors so if you have any ideas, bug reports, or patchs you would like to contribute please do not hesitate to do so.