中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis3.2.3安裝

發布時間:2020-07-21 07:16:25 來源:網絡 閱讀:544 作者:qhd2004 欄目:數據庫

要在centos7上安裝redis的主從,下面記錄一下安裝過程。

cd /apps
wget http://download.redis.io/releases/redis-3.2.3.tar.gz
tar -zxvf redis-3.2.3.tar.gz
cd redis-3.2.3
make 
make install

安裝過程中會顯示把redis放在什么目錄下:下面是安裝過程中的一部分

XSLTPROC           : /usr/bin/xsltproc
XSLROOT            : 

PREFIX             : /usr/local
BINDIR             : /usr/local/bin
DATADIR            : /usr/local/share
INCLUDEDIR         : /usr/local/include
LIBDIR             : /usr/local/lib
MANDIR             : /usr/local/share/man

redis安裝到/usr/local,/usr/local/bin,/usr/local/share,/usr/local/include,/usr/local/lib,/usr/local/share/man目錄下


軟件安裝完成,下面是初始化數據:

切換到utils目錄下,執行redis初始化腳本install_server.sh

cd utils
./install_server.sh 
Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

初始化后

配置文件為/etc/redis/6379.conf,

日志文件為/var/log/redis_6379.log,

數據文件dump.rdb存放到/var/lib/redis/6379目錄下,

啟動腳本為/etc/init.d/redis_6379


查看日志發現有如下warning

28000:M 09 Sep 13:33:02.917 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
28000:M 09 Sep 13:33:02.917 # Server started, Redis version 3.2.3
28000:M 09 Sep 13:33:02.917 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory =
 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
28000:M 09 Sep 13:33:02.917 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis
. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting
 after a reboot. Redis must be restarted after THP is disabled.
28000:M 09 Sep 13:33:02.917 * The server is now ready to accept connections on port 6379

如下解決:

1,第一個錯誤大概是說somaxconn的值128設置過小,從/proc/sys/net/core/somaxconn這個路徑也可大概知道這個值的設置是關于網絡連接中某個最大值的限定設置,此值表示網絡連接的隊列大小,在配置文件redis.conf中的“tcp-backlog 511”就配置在高并發環境下的最大隊列大小,此值受限于系統的somaxconn與tcp_max_syn_backlog這兩個值,所以應該把這兩個內核參數值調大,具體解決方法如下:


$ vim /etc/sysctl.conf

$ net.core.somaxconn = 20480  #最大隊列長度,應付突發的大并發連接請求,默認為128

$ net.ipv4.tcp_max_syn_backlog = 20480  #半連接隊列長度,此值受限于內存大小,默認為1024

$ sysctl -p  #使參數生效


2,警告:過量使用內存設置為0!在低內存環境下,后臺保存可能失敗。為了修正這個問題,請在/etc/sysctl.conf 添加一項 'vm.overcommit_memory = 1' ,然后重啟(或者運行命令'sysctl vm.overcommit_memory=1' )使其生效。


vm.overcommit_memory不同的值說明:


0 表示檢查是否有足夠的內存可用,如果是,允許分配;如果內存不夠,拒絕該請求,并返回一個錯誤給應用程序。

1 允許分配超出物理內存加上交換內存的請求

2 內核總是返回true


redis的數據回寫機制分為兩種


同步回寫即SAVE命令。redis主進程直接寫數據到磁盤。當數據量大時,這個命令將阻塞,響應時間長

異步回寫即BGSAVE命令。redis 主進程fork一個子進程,復制主進程的內存并通過子進程回寫數據到磁盤。

由于RDB文件寫的時候fork一個子進程。相當于復制了一個內存鏡像。當時系統的內存是4G,而redis占用了近3G的內存,因此肯定會報內存無法分配。如果 「vm.overcommit_memory」設置為0,在可用內存不足的情況下,就無法分配新的內存。如果 「vm.overcommit_memory」設置為1。 那么redis將使用交換內存。

解決方法


$ vim /etc/sysctl

$ vm.overcommit_memory = 1  #末尾追加

$ sysctl -p  #參數生效

注:使用交換內存并不是一個完美的方案。最好的辦法是擴大物理內存。


3,Transparent Huge Pages (THP)告警,這是一個關于透明內存巨頁的話題。簡單來說內存可管理的最小單位是page,一個page通常是4kb,那1M內存就會有256個page,CPU通過內置的內存管理單元管理page表記錄。Huge Pages就是表示page的大小已超過4kb了,一般是2M到1G,它的出現主要是為了管理超大內存。個人理解上TB的內存。而THP就是管理Huge Pages的一個抽象層次,根據一些資料顯示THP會導致內存鎖影響性能,所以一般建議關閉此功能。

   /sys/kernel/mm/transparent_hugepage/enabled有三個值,如下:

  $ cat /sys/kernel/mm/transparent_hugepage/enabled

    always [madvise] never

    ####

    # always 盡量使用透明內存,掃描內存,有512個 4k頁面可以整合,就整合成一個2M的頁面

    # never 關閉,不使用透明內存

    # madvise 避免改變內存占用

關于THP的內容就介紹到這里,現在根據警告是做些修改:


$ vim /etc/rc.local

$ echo never > /sys/kernel/mm/transparent_hugepage/enabled  #在開機腳本里追加此命令


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

定南县| 丰宁| 剑川县| 金寨县| 财经| 兴义市| 新宁县| 枞阳县| 鹰潭市| 巴南区| 阜城县| 韶关市| 静宁县| 清徐县| 绥棱县| 浦江县| 奉新县| 铜鼓县| 苏尼特左旗| 平罗县| 贵南县| 镇远县| 沁阳市| 宜阳县| 长乐市| 贡山| 沅陵县| 海盐县| 抚顺市| 忻州市| 宣威市| 瑞安市| 永德县| 广昌县| 图木舒克市| 咸阳市| 阿拉善右旗| 永仁县| 温州市| 上思县| 平昌县|