百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

从0开始学习KVM-KVM学习笔记(4)- CentOS安装软件及开发工具

nanshan 2025-01-17 12:28 14 浏览 0 评论

从0开始学习KVM-KVM学习笔记(4)- CentOS安装软件及开发工具



CentOS更新系统时间

使用NTP更新系统时间

sudo yum update -y    # 更新软件包
sudo yum install -y ntp   # 安装ntp
sudo ntpdate cn.pool.ntp.org # 根据网络时间校正
sudo tzselect # 选择时区:5Asia->9 China->1->Beijing Time ->1 yes
sudo echo 'TZ='Asia/Shanghai'; export TZ' > ~/.profile # 时区信息写入配置文件
sudo hwclock -w  # 软件时间同步至硬件时间

24小时制设置

sudo mv /etc/localtime /etc/localtime.bak
sudo ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date # 查看当前时间
Mon Jan 13 15:31:14 CST 2025
# CentOS时间/日期/24小时制设置完毕

CentOS安装开发工具及常用软件

之前CentOS是最小化安装,系统并没有安装常用软件及开发工具,现在根据需要安装一些常用软件及工具。

安装一些常用软件和工具

sudo yum update -y
sudo yum install -y traceroute bind-utils net-tools git wget screen ntp clang cmake mlocate ctags    #安装一些下载工具及常用软件 

安装开发者工具Development Tools

sudo yum update -y    # 更新软件包
sudo yum groupinstall -y 'Development Tools' --setopt=group_package_types=mandatory,default,optional

# 此过程稍微有点长,视网络状态而定,请耐心等待安完成
# Complete!

命令格式及参数说明 setopt=group_package_types=mandatory,default,optional

该命令会从配置的软件仓库中下载并安装“Development Tools”软件包组中的所有软件包,包括必须的、默认的和可选的软件包。

  • sudo:以超级用户权限执行命令,因为安装软件包组通常需要管理员权限。
  • yum:调用 YUM 包管理器。
  • groupinstall:用于安装软件包组。
  • -y:自动回答“yes”,在安装过程中自动确认所有提示,无需人工干预。
  • 'Development Tools':要安装的软件包组的名称。这个组通常包含了一系列开发工具,如编译器(gcc、g++ 等)、调试器(gdb)、版本控制系统(git 等)等,用于软件开发。
  • --setopt=group_package_types=mandatory,default,optional
    • --setopt:用于设置 YUM 的选项。
    • group_package_types=mandatory,default,optional:指定要安装的软件包类型。
      • mandatory:必须安装的软件包,是软件包组的核心组件。
      • default:默认安装的软件包,通常是与核心组件紧密相关的常用工具。
      • optional:可选安装的软件包,提供额外的功能或工具,可以根据需要选择安装。

安装高版本gcc

GCC(GNU Compiler Collection)是一个功能强大的编译器集合,用于编译多种编程语言,包括 C、C++、Objective-C、Fortran、Ada 和 Go 等。

GCC 作为 Linux 系统中最重要的编译器之一,提供了丰富的功能和强大的性能,支持多种编程语言和平台,是开发者进行软件开发、调试和优化的必备工具。通过 GCC,开发者可以高效地编写、编译和调试代码,提高开发效率和代码质量。

gcc —-version    #查看当前gcc版本

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

CentOS7的SCL源在2024年6月30日停止维护了。 当scl源里面默认使用了centos官方的地址,无法连接,需要替换为阿里云。

sudo yum install -y centos-release-scl    # 安装SCL源
sudo yum install -y centos-release-scl-rh   # # 安装SCL源
cd /etc/yum.repos.d/    # 进入yum源文件夹
sudo cp CentOS-SCLo-scl.repo CentOS-SCLo-scl.repo.bak   # 备份SCL源文件
sudo cp CentOS-SCLo-scl-rh.repo CentOS-SCLo-scl-rh.repo.bak   # # 备份SCL源文件
# CentOS7的SCL源在2024年6月30日停止维护了
# 当前scl源里面默认使用了centos官方的地址,无法连接,需要更换为阿里云。

更换SCL源为阿里云源

sudo vi /etc/yum.repos.d/CentOS-SCLo-scl.repo
将[centos-sclo-sclo]字段中的
# baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/sclo/ 修改为
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/
将[centos-sclo-sclo]字段中的
mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo修改为
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-sclo
也就是将mirrotlist注释掉,不让它起作用

修改完毕后:wq保存退出

sudo vi /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
将将[centos-sclo-sclo-rh]字段中的
#baseurl=http://mirror.centos.org/centos/7/sclo/$basearch/rh/ 修改为
baseurl=https://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/

将[centos-sclo-sclo]字段中的
# mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=7&repo=sclo-rh
也就是将mirrotlist注释掉,不让它起作用

修改完毕后:wq保存退出

sudo yum repolist && sudo yum clean all && sudo yum makecache
# 列出所有仓库&&清理所有缓存&&生成yum仓库缓存
sudo yum install -y devtoolset-8-toolchain    # 安装devtoolset-8-toolchain
sudo scl enable devtoolset-8 bash   # 启用devtoolset-8
sudo echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile    # 用户登录里启用devtoolset-8
sudo source /opt/rh/devtoolset-8/enable   # 立马启用devtoolset-8

gcc (GCC) 4.8.5升级到gcc (GCC) 8.3.1 ,gcc升级成功。

gcc --version
gcc (GCC) 8.3.1 20190311 (Red Hat 8.3.1-3)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

安装openssl和openssl-devel

sudo yum install -y openssl openssl-devel

编译安装/升级cmake

在 Linux 系统中,CMake 是一个功能强大的跨平台自动化构建系统生成器,主要用于简化软件的构建过程。

使用源码编译安装cmake,先查看下系统自带的cmake版本信息:

cmake --version
cmake version 2.8.12.2
wget https://cmake.org/files/v3.21/cmake-3.21.5.tar.gz    # 从官网下载cmake源码
tar -zxvf cmake-3.21.5.tar.gz   # 解压源码(.tar.gz)到当前目录
cd cmake-3.21.5   # 进入cmake文件夹
su    # 切换到root用户
Password:     # 输入root密码,此处输入的密码不可见,输入完成后按回车键确认

./bootstrap   # 配置工具,用于生成适合当前系统的 Makefile
sudo make   # 根据 Makefile 中的规则编译项目。Makefile 是一个包含编译规则和依赖关系的文件,make 会读取这个文件并执行编译任务

# ==============以make的配置(`./bootstrap`)和编译(`make`)过程很长,要耐心等待完成===============
# [  0%] Building C object Source/kwsys/CMakeFiles/cmsys.dir/ProcessUNIX.c.o
# [  10%] Building C object Source/kwsys/CMakeFiles/cmsys.dir/Base64.c.o
# [  20%] Building C object Source/kwsys/CMakeFiles/cmsys.dir/EncodingC.c.o
# .....................  省略部份  .....................
# .....................  省略部份  .....................
# [100%] Building CXX object Source/kwsys/CMakeFiles/cmsys.dir/Glob.cxx.o
# [100%] Building CXX object Source/kwsys/CMakeFiles/cmsys.dir/RegularExpression.cxx.o
# [100%] Building CXX object Source/kwsys/CMakeFiles/cmsys.dir/SystemTools.cxx.o
# ========================================================================================

sudo make install   # 安装编译后的软件。这个命令会将编译生成的文件(如可执行文件、库文件、配置文件等)复制到指定的安装目录。

cmake 安装完成

cmake --version
cmake version 3.21.5

源代码编译安装Python3

Python 3 与 OpenSSL 之间存在紧密的依赖关系,Python 3 的 ssl 模块通过 OpenSSL 实现了 SSL/TLS 协议的支持,包括证书验证、加密算法和协议版本等。确保系统中安装了 OpenSSL 库,并正确配置证书路径,可以确保 Python 3 的 ssl 模块正常工作。安装Python3应先安装OpenSSL。

安装新版OpenSSL

openssl version   # 原openssl版本
OpenSSL 1.0.2k-fips  26 Jan 2017
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1o.tar.gz    # 下载最新版openssl
su    # 切换到root用户
tar -xzvf openssl-1.1.1o.tar.gz    # 解压包
cd openssl-1.1.1o    # 进入目录
mkdir /usr/local/openssl    # 建立安装目录
./config --prefix=/usr/local/openssl no-zlib --shared    # 配置安装路径参数等
make    # 编译
make install # 安装

配置新版OpenSSL

#备份原来的配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak


#配置新版本的链接
#======================================================
#将安装好的openssl的include软连到/usr/include
ln -s /usr/local/openssl/include/openssl /usr/include/openssl


#软链到升级后的libssl.so
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/local/lib64/libcrypto.so.1.1

#ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
#ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

#将安装好的openssl命令软连到/usr/bin/openssl
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

修改系统配置

# 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf

# 使修改后的/etc/ld.so.conf生效
ldconfig -v

OpenSSL安装完成

openssl version   # 版本信息
OpenSSL 1.1.1o  3 May 2022

安装python3

CentOS7 自带的Python版本信息

python --version
Python 2.7.5
whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
ll /usr/bin/python*
lrwxrwxrwx. 1 root root    7 Jan  3 17:46 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root    9 Jan  3 17:46 /usr/bin/python2 -> python2.7
-rwxr-xr-x. 1 root root 7144 Nov 15  2023 /usr/bin/python2.7

安装Python3必要的依赖包(软件/插件)

sudo yum install -y zlib* bzip2-devel libffi-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel xz-devel python-devel python-backports-lzma curl-devel

sudo yum install -y yum-utils    # 安装必要工具yum-utils ,功能是管理repository及扩展包的工具 (主要是针对repository)
sudo yum-builddep -y python    # 使用yum-builddep为Python3构建环境,安装缺失的软件依赖,使用该命令会自动处理

配置openssl环境变量,为编译安装Python3作准备

export LDFLAGS=" -L/usr/local/openssl/lib"   # 用于指定OpenSSL库文件的路径
export CPPFLAGS=" -I/usr/local/openssl/include"   # 用于指定OpenSSL头文件的路径
export PKG_CONFIG_PATH="/usr/local/openssl/lib/pkgconfig"   # # 用于指定OpenSSL配置文件的路径

下载Python3源码并编译安装

wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz   # 下载Python3.7.8源码
tar -zxvf Python-3.7.8.tgz    # 解压
sudo mkdir /usr/local/python3   # 建立安装目录
cd Python-3.7.8 
./configure --enable-shared --with-openssl=/usr/local/openssl --prefix=/usr/local/python3    # 配置python3源码

Configure 参数说明:

--prefix: 指定安装路径,否则安装过程中软件所需要的文件会复制到不同目录,删除、复制软件很不方便

--enable-optimizations: 可以提高 Python 代码 10%-20% 的运行速度

--with-openssl: 安装 pip 所需要的 ssl

这时候需要检查一下最后的ssl配置是否正常

make    # 编译源码
sudo make install   # 安装,写入系统文件需要使用sudo权限

配置Python3

sudo ln -s /usr/local/python3/bin/python3 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
# 修改环境变量 ~/.bash_profile
PATH=/usr/local/python3/bin:$PATH:$HOME/bin
export PATH
## 使其生效
source ~/.bash_profile

sudo cp /usr/local/python3/lib/libpython3.7m.so.1.0 /usr/lib64

验证Python3及ssl安装成功,系统保留了Python2.5,也安装了Python3

python -V
Python 2.7.5

python3 -V
Python 3.7.8
python3
Python 3.7.8 (default, Jan 14 2025, 13:12:59)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
Ctrl+D    # 退出

安装VIM

Vim 是一个功能强大的文本编辑器,广泛用于 Linux 和其他 Unix-like 系统中。它以其高效的文本编辑能力和丰富的插件生态系统而闻名。Vim 适合编写各种类型的文本文件,包括源代码、配置文件和普通文本。

Vim是一个类似于Vi的高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。Vim是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个。

源码编译安装最新版VIM

删除旧的vim

rpm -qa|grep vim
yum remove vim-* -y
yum remove vim-mini*
wget https://github.com/vim/vim/archive/refs/tags/v9.1.1012.tar.gz    # 下载最新版vim
tar -xzvf v9.1.1012.tar.gz    # 解压vim
cd vim-9.1.1012/src
./configure --with-features=huge --enable-cscope --enable-fontset --enable-pythoninterp=yes --with-python-config-dir=/usr/lib64/python2.7/config --enable-python3interp=yes --with-python3-config-dir=/usr/local/python3/lib/python3.7/config-3.7m-x86_64-linux-gnu  --prefix=/usr/local/vim
make 
sudo make install

## 创建链接
ln -s /usr/local/vim/bin/vim /usr/bin/vim

查看VIM版本是否支持python

vim --version | grep python
+cmdline_hist      +langmap           '+python/dyn'     +viminfo
+cmdline_info      +libcall           '+python3/dyn'      +virtualedit

Note:

./configure 后面的配置选项 需要啥自己添加

--with-features=huge:支持最大特性

--enable-multibyte:打开多字节支持,可以在Vim中输入中文

--enable-rubyinterp:打开对ruby编写的插件的支持

--enable-pythoninterp:打开对python编写的插件的支持

--with-python-config-dir=
/usr/lib64/python2.7/config 指定python路径(此处是腾讯云CentOS7.4的python2路径)

--enable-python3interp:打开对python3编写的插件的支持

--with-python-config-dir=
/usr/local/python3.7/lib/python3.7/config-3.7m-x86_64-linux-gnu 指定python3路径(此处是我指定位置安装python3后的路径,CentOS编译安装python3.7.0)

--enable-perlinterp:打开对perl编写的插件的支持

--enable-luainterp:打开对lua编写的插件的支持

--enable-gui=gtk2:gtk2支持,也可以使用gnome,表示生成gvim

--enable-cscope:打开对cscope的支持

--prefix=/usr/local/vim:指定将要安装到的路径(自行创建)


安装配置vim插件

之前在另一台CentOS上安装过vim插件并配置好vimrc(vim的配置文件),为节省时间直接将其打包并上传到新的服务器。

安装的插件有:

  • Plugin 'gmarik/Vundle.vim' " vim插件管理器Vundle
  • Plugin 'scrooloose/nerdtree' " vim目录树插件NERDTree,设置<F2>为快捷键
  • Plugin 'majutsushi/tagbar' " vim插件Tagbar 需Ctags支持,设置<F4>为快捷键
  • Plugin 'Valloric/YouCompleteMe' " vim自动补全插件YouCompleteMe
  • Plugin 'vim-airline/vim-airline' " vim状态栏插件air-line
  • Plugin 'vim-airline/vim-airline-themes' " vim状态栏插件air-line
  • Plugin 'kien/ctrlp.vim' " vim插件文件跳转ctrlp
  • Plugin 'vim-scripts/indentpython.vim' " 自动缩进python代码
  • Plugin 'scrooloose/syntastic' " 代码语法检查插件
  • Plugin 'Raimondi/delimitMate' " 成对生成(),{},[]

在客户机上操作,上传已安装的插件及字体文件

scp vim-linux-x86_64.tar.gz xiaoqiang@10.91.19.38:/tmp    # 将打包好的vim插件/配置文件上传到服务器的/tmp下
vim-linux-x86_64.tar.gz                       100%  298MB 110.2MB/s   00:02   # 上传完成
scp powerline_fontrs.tar.gz xiaoqiang@10.91.19.38:/tmp    # # 将打包好的字体文件上传到服务器的/tmp下
powerline_fontrs.tar.gz                       100%   31MB 101.1MB/s   00:00   # 上传完成

在服务器上操作,安装/配置 vim插件

# 先给服务器改个名,有多台CentOS机器,容易混淆
sudo hostnamectl set-hostname kvm-server
# 改完名后重启下
sudo reboot

# 将上传到服务/tmp目录下的插件文件和字体文件移动到当前目录下,当前目录是~
[xiaoqiang@kvm-server ~]$ mv /tmp/vim-linux-x86_64.tar.gz .
[xiaoqiang@kvm-server ~]$ mv /tmp/powerline_fontrs.tar.gz .

tar -xzvf vim-linux-x86_64.tar.gz   # 解压后的目录是.vim,在Linux中带点的目录/文件是隐藏的,不可见
ll -ah
total 430M
drwx------.  8 xiaoqiang xiaoqiang 4.0K Jan 14 15:02 .
drwxr-xr-x.  3 root      root        23 Jan  8 16:28 ..
drwx------.  6 xiaoqiang xiaoqiang   74 Dec  6 14:33 .vim

chmod 755 .vim    # 给.vim加个权限

mv .vim/vimrc ~/.vimrc    # 移动vim配置文件vimrc到当前用户目录下,注意那个点
vim ~/.vimrc    # 编辑配置文件
:PluginInstall  # 安装插件,看到vim框左下角显示Done!,表示插件安装完成
:qa   # 退出vim

再次打开vim时YouCompleteMe自动补全插件报错,重新安装下YouCompleteMe插件

cd ~/.vim/bundle/YouCompleteMe/   # 进入目录
python3 ./install.py --clang-completer    # 编译YCM, 需要C家族语言的语义支持

vim报错:

The ycmd server SHUT DOWN (restart with ' :YcmRestartServer')..... mToggleLogs ycmd_60834_stderr_¡317_s9q.log' to check the logs.

# 在vim中NORMAL模式下按:键,输入YcmRestartServer,重启ycm服务,检查出报错信息的log文件,log保存在/tmp目录下
# 如这里提示log文件是ycmd_60834_stderr_¡317_s9q.log
# 打开log文件,查看信息
cat /tmp/ycmd_60834_stderr_i317_s9q.log

OSError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/xiaoqiang/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/libclang.so.11)

GLIBCXX_3.4.20 文件没找到,出现错误信息 GLIBCXX_3.4.20 not found 通常是因为系统中的 libstdc++ 库版本过低,缺少所需的 GLIBCXX_3.4.20 版本。接下来就升级该库文件,可以通过安装gcc-11.2.0解决,但是太麻烦,直接下载个libstdc++.so.6.0.24来处理。

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX    # 检查系统中已安装的 GLIBCXX 版本

'GLIBCXX_3.4.18'
'GLIBCXX_3.4.19'
GLIBCXX_DEBUG_MESSAGE_LENGTH

下载个libstdc++.so.6.0.24并上传到服务上

scp libstdc++.so.6.0.24 xiaoqiang@10.91.19.38:/tmp
libstdc++.so.6.0.24                           100%   11MB  21.3MB/s   00:00
su    # 服务器切换到root用户

ll libstdc++.so.6.0.24    # 查看libstdc++.so.6.0.24权限
-rw-------. 1 xiaoqiang xiaoqiang 11616869 Jan 14 16:32 libstdc++.so.6.0.24

chown root:root libstdc++.so.6.0.24     # 更改文件的所有者和组为root
chmod 755 libstdc++.so.6.0.24   # 修改权限为755

ll libstdc++.so.6.0.24 
-rwxr-xr-x. 1 root root 11616869 Jan 14 16:32 libstdc++.so.6.0.24

cp libstdc++.so.6.0.24 /usr/lib64/    # 把文件复制到/usr/lib64

updatedb    # 更新locate数据库
locate libstdc++.so.6   # 查找 libstdc++.so.6 文件

ll libstdc*
lrwxrwxrwx. 1 root root       19 Jan  3 17:14 libstdc++.so.6 -> libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root   995840 Sep 30  2020 libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 11616869 Jan 14 16:43 libstdc++.so.6.0.24

mv libstdc++.so.6 libstdc++.so.6.bak    # 备份原来的软件连接文件
ln -sf libstdc++.so.6.0.24 libstdc++.so.6   # 重新建立新的libstdc++.so.6软连接

ll libstdc*     # 查看
lrwxrwxrwx. 1 root root       19 Jan 14 16:53 libstdc++.so.6 -> libstdc++.so.6.0.24
-rwxr-xr-x. 1 root root   995840 Sep 30  2020 libstdc++.so.6.0.19
-rwxr-xr-x. 1 root root 11616869 Jan 14 16:43 libstdc++.so.6.0.24
lrwxrwxrwx. 1 root root       19 Jan  3 17:14 libstdc++.so.6.bak -> libstdc++.so.6.0.19

strings  libstdc++.so.6 |grep GLIBC   # 确认glibcxx的版本
GLIBCXX_3.4
...... ......
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
...... ......
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

exit    # 退出root用户,回到普通用户(xiaoqiang)

vim ~/.vimrc    # Ymc未报错,编辑文件,ycm自动补全插件可用

附:chmod 更改权限

权限模式解释

  • 7:表示所有者(owner)的权限
    • 4:读权限(r)
    • 2:写权限(w)
    • 1:执行权限(x)
    • 7:读、写、执行权限(4 + 2 + 1 = 7)
  • 5:表示组(group)的权限
    • 4:读权限(r)
    • 1:执行权限(x)
    • 5:读、执行权限(4 + 1 = 5)
  • 5:表示其他用户(others)的权限
    • 4:读权限(r)
    • 1:执行权限(x)
    • 5:读、执行权限(4 + 1 = 5)

权限总结

  • 所有者:读、写、执行(7)
  • 组:读、执行(5)
  • 其他用户:读、执行(5)



相关推荐

0722-6.2.0-如何在RedHat7.2使用rpm安装CDH(无CM)

文档编写目的在前面的文档中,介绍了在有CM和无CM两种情况下使用rpm方式安装CDH5.10.0,本文档将介绍如何在无CM的情况下使用rpm方式安装CDH6.2.0,与之前安装C5进行对比。环境介绍:...

ARM64 平台基于 openEuler + iSula 环境部署 Kubernetes

为什么要在arm64平台上部署Kubernetes,而且还是鲲鹏920的架构。说来话长。。。此处省略5000字。介绍下系统信息;o架构:鲲鹏920(Kunpeng920)oOS:ope...

生产环境starrocks 3.1存算一体集群部署

集群规划FE:节点主要负责元数据管理、客户端连接管理、查询计划和查询调度。>3节点。BE:节点负责数据存储和SQL执行。>3节点。CN:无存储功能能的BE。环境准备CPU检查JDK...

在CentOS上添加swap虚拟内存并设置优先级

现如今很多云服务器都会自己配置好虚拟内存,当然也有很多没有配置虚拟内存的,虚拟内存可以让我们的低配服务器使用更多的内存,可以减少很多硬件成本,比如我们运行很多服务的时候,内存常常会满,当配置了虚拟内存...

国产深度(deepin)操作系统优化指南

1.升级内核随着deepin版本的更新,会自动升级系统内核,但是我们依旧可以通过命令行手动升级内核,以获取更好的性能和更多的硬件支持。具体操作:-添加PPAs使用以下命令添加PPAs:```...

postgresql-15.4 多节点主从(读写分离)

1、下载软件[root@TX-CN-PostgreSQL01-252software]#wgethttps://ftp.postgresql.org/pub/source/v15.4/postg...

Docker 容器 Java 服务内存与 GC 优化实施方案

一、设置Docker容器内存限制(生产环境建议)1.查看宿主机可用内存bashfree-h#示例输出(假设宿主机剩余16GB可用内存)#Mem:64G...

虚拟内存设置、解决linux内存不够问题

虚拟内存设置(解决linux内存不够情况)背景介绍  Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级。所以,程序和数据如果在内存的话,会有非常快的读写速度。但是,内存...

Elasticsearch性能调优(5):服务器配置选择

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,...

Es如何落地

一、配置准备节点类型CPU内存硬盘网络机器数操作系统data节点16C64G2000G本地SSD所有es同一可用区3(ecs)Centos7master节点2C8G200G云SSD所有es同一可用区...

针对Linux内存管理知识学习总结

现在的服务器大部分都是运行在Linux上面的,所以,作为一个程序员有必要简单地了解一下系统是如何运行的。对于内存部分需要知道:地址映射内存管理的方式缺页异常先来看一些基本的知识,在进程看来,内存分为内...

MySQL进阶之性能优化

概述MySQL的性能优化,包括了服务器硬件优化、操作系统的优化、MySQL数据库配置优化、数据库表设计的优化、SQL语句优化等5个方面的优化。在进行优化之前,需要先掌握性能分析的思路和方法,找出问题,...

Linux Cgroups(Control Groups)原理

LinuxCgroups(ControlGroups)是内核提供的资源分配、限制和监控机制,通过层级化进程分组实现资源的精细化控制。以下从核心原理、操作示例和版本演进三方面详细分析:一、核心原理与...

linux 常用性能优化参数及理解

1.优化内核相关参数配置文件/etc/sysctl.conf配置方法直接将参数添加进文件每条一行.sysctl-a可以查看默认配置sysctl-p执行并检测是否有错误例如设置错了参数:[roo...

如何在 Linux 中使用 Sysctl 命令?

sysctl是一个用于配置和查询Linux内核参数的命令行工具。它通过与/proc/sys虚拟文件系统交互,允许用户在运行时动态修改内核参数。这些参数控制着系统的各种行为,包括网络设置、文件...

取消回复欢迎 发表评论: