閱讀102 返回首頁    go 技術社區[雲棲]


Redis開發運維實踐上線部署規劃之多實例配置

5.5 多實例配置

如果一台機器上防止多個redis實例,為了防止上下文切換導致的開銷,可以采用taskset。taskset是LINUX提供的一個命令(ubuntu係統可能需要自行安裝,schedutils package)。他可以讓某個程序運行在某個(或)某些CPU上。

1)顯示進程運行的CPU (6137為redis-server的進程號)

[redis@hadoop1 ~]$ taskset  -p 6137
pid 6137's current affinity mask: f 

顯示結果的f實際上是二進製4個低位均為1的bitmask,每一個1對應於1個CPU,表示該進程在4個CPU上運行

2)指定進程運行在某個特定的CPU上

[redis@hadoop1 ~]$ taskset -pc 3 6137
pid 6137's current affinity list: 0-3
pid 6137's new affinity list: 3 

注:3表示CPU將隻會運行在第4個CPU上(從0開始計數)。

3)進程啟動時指定CPU

taskset -c 1 ./redis-server ../redis.conf

參數:OPTIONS -p, --pid operate on an existing PID and not launch a new task

-c, --cpu-list specify a numerical list of processors instead of a bitmask. The list may contain multiple items, separated by comma, and ranges. For example, 0,5,7,9-11.


Redis開發運維實踐指南

本文為《Redis開發運維實踐指南》內容,該書作者為黃鵬程,已授權雲棲社區轉載。

最後更新:2017-05-08 10:31:37

  上一篇:go Redis開發運維實踐上線部署規劃之其他好用的配置技巧
  下一篇:go Redis開發運維實踐上線部署規劃之具體設置參數