先說一下結論 無法復用ubuntu上面編譯的二進制文件 無法直接使用docker官網下面的arm64的鏡像運行 無法直接使用redis6.0.10最新版本編譯運行 可以使用redis5.0.4 進行編譯安裝運行. redis5.0.4無法直接使用redis6.0.10的redis.conf配置文件, 參數不一樣.
公司昨天新進了一台飛騰2000+的服務器, 昨天下午在上面安裝了redis以及我們自己的應用軟件
本來想復用之前的redis二進制文件, 但是發現不太行, 會報錯如下:
<jemalloc>: Unsupported system page size
段錯誤 (核心已轉儲)
經過一番搜索發現一個簡要的問題說明為 :
arm 架構上面: 在uos debian ubuntu 等操作系統 默認的pagesiz是4KB 但是在centos rhel 系列上面默認的pagesize 是 64KB 然后redis 使用的jemalloc 內存分配庫 在編譯時就需要嚴格確認內存pagesize大小. 所以在ubuntu 后者是銀河麒麟4.0 上面編譯的redis版本無法滿足 銀河麒麟v10服務器版本上面進行使用.
簡單驗證一下內存頁面大小
銀河麒麟v10的版本
[root@localhost src]# cat /etc/os-release NAME="Kylin Linux Advanced Server" VERSION="V10 (Tercel)" ID="kylin" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (Tercel)" ANSI_COLOR="0;31" [root@localhost src]# getconf PAGESIZE 65536 [root@localhost src]#
銀河麒麟v4的參數
root@lccy-2321321:~# cat /etc/os-release NAME="Kylin" VERSION="4.0.2 (juniper)" ID=kylin ID_LIKE=debian PRETTY_NAME="Kylin 4.0.2" VERSION_ID="4.0.2" HOME_URL="http://www.kylinos.cn/" SUPPORT_URL="http://www.kylinos.cn/content/service/service.html" BUG_REPORT_URL="http://www.kylinos.cn/" UBUNTU_CODENAME=juniper root@lccy-2321321:~# getconf PAGESIZE 4096
然后只能重新編譯處理
本來想着用一個最新版本的redis6.0.10 進行使用 但是發現還是存在問題:

最后面還是提示內存有問題詳細信息為:
------ FAST MEMORY TEST ------ *** Preparing to test memory region 5e0000 (720896 bytes) *** Preparing to test memory region 19060000 (196608 bytes) *** Preparing to test memory region fffe60000000 (1073741824 bytes) .O.O.O Fast memory test PASSED, however your memory can still be broken. Please run a memory test for several hours if possible. ------ DUMPING CODE AROUND EIP ------ Symbol: _serverAssert (base: 0x478cc0) Module: ./redis-server 127.0.0.1:6388 (base 0x400000) $ xxd -r -p /tmp/dump.hex /tmp/dump.bin $ objdump --adjust-vma=0x478cc0 -D -b binary -m i386:x86-64 /tmp/dump.bin ------ 58161:M 21 Feb 2021 09:01:51.019 # dump of function (hexdump of 260 bytes): fd7bbda9fd030091f35301a9d30b00d063e23e91f55b02a9f60300aaf50301aaf403022a60e44db9400000358ffeff97600080520107009021801691b1e7fe97e40316aae303142ae20315aa600080520107009021001791aae7fe9762e23e9160008052010700902180179156e806f955ec06f954e00db9a2e7fe9700008092010f805201000039f35341a9f55b42a9fd7bc3a8c0035fd6fd7bb2a9c10b00f0fd030091f51300f9f50300aa209c4db90009003460008052010700902140189190e7fe97a25e40f9600080520107009021e018918be7fe97a00640f9020480d2a1030191af3b0194e20300aa01070090600080522140199182e7fe97a24a40b960008052 === REDIS BUG REPORT END. Make sure to include from START to END. === Please report the crash by opening an issue on github: http://github.com/redis/redis/issues Suspect RAM error? Use redis-server --test-memory to verify it. 段錯誤 (核心已轉儲)
沒辦法 換用之前下載的redis5.0.4
進行編譯和安裝發現沒有問題

