CentOS 7 配置静态 IP 地址

在 CentOS 7 上配置静态 IP 地址需要编辑网络配置文件。请按照以下步骤进行操作:

  1. 打开终端或通过 SSH 连接到 CentOS 7 服务器。
  2. 使用文本编辑器打开网络配置文件。在 CentOS 7 上,网络配置文件位于 /etc/sysconfig/network-scripts/ 目录下,文件名通常以 ifcfg-ensX 的形式表示(X 为数字)。例如,编辑文件 ifcfg-ens33
    cd /etc/sysconfig/network-scripts/
    vi ifcfg-ens33
  3. 在编辑器中,您会看到类似以下的配置内容:
    TYPE=”Ethernet”
    PROXY_METHOD=”none”
    BROWSER_ONLY=”no”
    BOOTPROTO=”dhcp”
    DEFROUTE=”yes”
    IPV4_FAILURE_FATAL=”no”
    IPV6INIT=”yes”
    IPV6_AUTOCONF=”yes”
    IPV6_DEFROUTE=”yes”
    IPV6_FAILURE_FATAL=”no”
    IPV6_ADDR_GEN_MODE=”stable-privacy”
    NAME=”ens33”
    UUID=”xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
  4. BOOTPROTO 的值从 dhcp 修改为 static,表示使用静态 IP 地址。在 BOOTPROTO 行下方添加以下配置项,以设置静态 IP 地址、子网掩码、网关地址和 DNS 服务器的值:
    IPADDR=”192.168.31.66”
    NETMASK=”255.255.255.0”
    GATEWAY=”192.168.31.1”
    DNS1=”8.8.8.8”
  5. 保存并关闭文件。在 vi 编辑器中,按下 Esc 键,然后输入 :wq 并按回车键保存退出。
  6. 重启网络服务使配置生效。在终端中执行以下命令:
    systemctl restart network
  7. 检查 IP 地址是否已生效。您可以使用以下命令之一来验证 IP 地址是否已设置为静态:
    ip addr show ens33 # 或者 ip addr show eth0(取决于您的网络接口名称)
  8. 如果一切正常,您应该能够看到您设置的静态 IP 地址已应用于相应的网络接口。
    请注意,这些步骤仅适用于 CentOS 7。如果您使用的是其他 Linux 发行版或操作系统,请参考相应的文档或手册进行配置。另外,在进行任何网络配置更改之前,请确保您具有足够的权限,并备份相关的网络配置文件以防意外情况发生。

Linux 服务器一键测试、测速脚本 SuperBench,支持CentOS 8

SuperBench是一个测试linux服务器性能的脚本,让你快速方便了解一台服务器的综合性能,支持硬件基本信息、流媒体解锁检测、磁盘IO检测、CPU性能测试、以及国内和国外网络测速、网络路由追踪。

使用:

代码语言:javascript
bash <(wget -qO- https://down.vpsaff.net/linux/speedtest/superbench.sh)或
wget -qO- https://down.vpsaff.net/linux/speedtest/superbench.sh | sudo bash

Hetzner 独服重装系统并配置 RAID 0

前言

Hetzner在购买的时候只显示硬盘默认是RAID 1模式,发了Ticket也没有回复我,无奈只好先开台机器尝试了。
买的芬兰机器,网络非常差,建议选德国的吧,可能会好点,但会贵一些。

安装

进入后台,点击Rescue选项卡,选择Linux64Bit,然后点击Activate rescue system

接着点击Reset选项卡,选择Execute an automatic hardware reset,然后点击Send,之后下面会显示一串英文,记录下登录密码即可。

此时系统会重启进入Rescue模式,用之前记录的密码登录后输入以下命令开始重装系统:

installimage

Hetaner_Install_Tool.png

选择自己需要安装的系统,点击OK下一步。
之后会出现一系列的确认问题,选择OK即可。

最后进入配置编辑页面,修改成如下即可:

  1. SWRAID 1 #默认即可不用修改
  2. SWRAIDLEVEL 0 #默认是1
  3. PART swap swap 32G #默认
  4. PART /boot ext3 512M #默认
  5. PART / ext4 all #修改成 all
  6. #刪除 PART /home ext4 all

改完,按Esc保存退出,执行reboot重启即可进入新系统。

自用VPS一键脚本工具箱,一个脚本搞定大部分需求

自用VPS一键脚本工具箱,一个脚本搞定大部分需求,废话不多说,上脚本

curl -fsSL https://raw.githubusercontent.com/eooce/ssh_tool/main/ssh_tool.sh -o ssh_tool.sh && chmod +x ssh_tool.sh && ./ssh_tool.sh

wget -qO ssh_tool.sh https://raw.githubusercontent.com/eooce/ssh_tool/main/ssh_tool.sh && chmod +x ssh_tool.sh && ./ssh_tool.sh

部分功能展示图如下,更多功能自行查看,最近会陆续添加更多实用功能,使用时自行更新脚本
自用VPS一键脚本工具箱,一个脚本搞定大部分需求插图

自用VPS一键脚本工具箱,一个脚本搞定大部分需求插图1

自用VPS一键脚本工具箱,一个脚本搞定大部分需求插图2

若提示curl或wget未找到,说明vps上未安装此依赖,安装后再运行即可,对应系统安装命令如下:

Ubuntu/Debian:apt-get install -y curl wget

Alpine:apk add curl wget

Fedora:dnf install -y curl wget

CentOS/Rocky/Almalinux/Oracle-linux/Amazon-linux:yum install -y curl wget

 

from:https://www.nodeseek.com/post-58421-1

Debian 12 / Ubuntu 24.04 安装 Nginx

Nginx (Engine X) 是一个高性能的 HTTP 和反向代理 Web 服务器(软件),它占有内存少,并发能力强,驱动了超过 1/3 的互联网网站。

在本文中,我们将介绍如何在 Debian 12 和 Ubuntu 24.04 系统上安装 Nginx。

准备

适用系统

本教程适用于以下 Linux 发行版:

  • Debian 12
  • Debian 11
  • Debian 10
  • Ubuntu 24.04
  • Ubuntu 22.04
  • Ubuntu 20.04

IDC 防火墙

一些服务器提供商可能为服务器预装了防火墙、有网络访问限制,例如国外的 Google Cloud,国内的阿里云、腾讯云等等,此类情况需要去管理面板放行 Nginx 暴露的端口 80、443。

系统

确保当前用户有 sudo 执行权限;且 80、443 端口没有被其它程序(如 Apache) 占用、或者防火墙工具(如 UFW)屏蔽。

安装 Nginx

1. 更新系统

运行以下命令更新一下系统,

apt update && apt upgrade

2. 安装 Nginx

Nginx 在 Debian / Ubuntu 的默认软件仓库中,可以使用 apt 一键安装,

apt install nginx

3. 检查 Nginx 运行状态

在安装完成后,系统会自动启动 Nginx,使用以下命令检查 Nginx 运行状态,

systemctl status nginx
Debian 12 / Ubuntu 24.04 安装 Nginx插图

表示 Nginx 安装成功。在浏览器输入、访问服务器 IP,

Debian 12 / Ubuntu 24.04 安装 Nginx插图1

会看到默认的 Nginx 欢迎页面,这个页面是 Nginx 自带的,用来告诉用户 Web 服务器已经正确运行。

Nginx 基础管理

下面介绍 Nginx 作为一个 Linux 系统上的软件,如何进行基础的管理。

停止 Nginx,

systemctl stop nginx

启动 Nginx,

systemctl start nginx

重启 Nginx,

systemctl restart nginx

重载配置,

systemctl reload nginx

默认情况下,服务器启动时会自动启动 Nginx。如果不希望这样,可以输入:

systemctl disable nginx

重新允许 Nginx 在启动时自动启动,

systemctl enable nginx

在实际使用的时候,修改配置后,使用重载配置或重启命令;Nginx 因为各种原因停止,使用启动命令,这些情况比较常见。

卸载 Nginx

首先停止正在运行中的 Nginx,

systemctl stop nginx

如果要删除 Nginx 服务,保留配置文件,运行

apt remove nginx

要删除 Nginx 服务以及配置文件,运行

apt purge nginx

删除与 Nginx 相关的依赖包,

apt autoremove

删除 Nginx 相关的文件或目录(如果存在),

rm -rf /etc/nginx /etc/nginx/

检查是否卸载完成,

nginx -v

aws linux命令合集

AWS (Amazon Web Services) 是亚马逊公司提供的一系列云计算服务。AWS Linux 是AWS基于Linux内核开发的操作系统。下面我将介绍一些常用的 AWS Linux 命令。

1. ls:列出当前目录下的文件和文件夹。
2. cd:切换目录。例如,cd /home 将进入 home 目录。
3. pwd:显示当前所在的目录。
4. mkdir:创建一个新目录。例如,mkdir newdir 将在当前目录下创建一个名为 newdir 的文件夹。
5. touch:创建一个新文件。例如,touch newfile 将在当前目录下创建一个名为 newfile 的文件。
6. cp:复制文件或文件夹。例如,cp file1 file2 将文件 file1 复制到 file2。
7. mv:移动文件或文件夹。例如,mv file1 file2 将文件 file1 移动到 file2。
8. rm:删除文件或文件夹。例如,rm file 将删除名为 file 的文件。
9. cat:显示文件的内容。例如,cat file 将显示名为 file 的文件的内容。
10. grep:在文件中查找指定的模式。例如,grep “pattern” file 将在文件中查找包含 pattern 的行。
11. chmod:修改文件的权限。例如,chmod 755 file 将文件 file 的权限设置为 rwxr-xr-x。
12. chown:修改文件的所有者。例如,chown user file 将文件 file 的所有者设置为 user。
13. top:显示系统的实时进程信息。
14. free:显示系统的内存使用情况。
15. df:显示系统的磁盘空间使用情况。

以上是一些常用的 AWS Linux 命令,它们可以帮助您在 AWS Linux 环境中进行文件和目录操作,以及查看系统的运行情况和资源使用情况。希望这些命令对您有所帮助!

AWS Linux是亚马逊网络服务(Amazon Web Services)推出的一种基于Linux操作系统的云服务器操作系统,专门用于在AWS云平台上运行和管理云服务器实例。以下是一些常用的AWS Linux命令:

1. ls:列出目录内容。可以使用不同的选项来显示文件和目录的详细信息,例如使用-l选项来显示更多信息,或使用-a选项来显示隐藏文件。

2. cd:切换目录。使用cd命令可以进入到指定目录或返回上一级目录。

3. pwd:显示当前工作目录的路径。

4. mkdir:创建目录。可以使用mkdir命令创建新的目录。

5. rm:删除文件或目录。可以使用rm命令删除指定的文件或目录。使用-r选项可以递归地删除目录。

6. cp:复制文件或目录。可以使用cp命令复制指定的文件或目录。使用-r选项可以递归地复制目录。

7. mv:移动文件或目录。可以使用mv命令将文件或目录移动到指定的位置。

8. touch:创建空文件或修改文件的访问和修改时间。

9. cat:显示文件内容。可以使用cat命令将文件的内容显示在终端上。

10. grep:搜索文件内容。可以使用grep命令搜索指定文件中的文本。

11. top:显示系统资源使用情况。top命令可以显示CPU、内存等资源的使用情况,以及正在运行的进程。

12. ps:显示进程信息。可以使用ps命令显示当前系统中运行的进程。

13. yum:包管理器。使用yum命令可以安装、更新和删除软件包。

14. systemctl:系统服务管理器。可以使用systemctl命令管理系统服务,如启动、停止和重启服务。

15. ssh:远程登录。可以使用ssh命令通过网络连接到远程服务器。

这只是AWS Linux中一些常用的基本命令,还有很多其他命令可以用于系统配置、网络管理、安全设置等方面。根据具体的需求和使用场景,还可以通过学习和实践来熟悉更多的AWS Linux命令。

 

AWSLinux是使用Amazon Web Services(AWS)构建和部署应用程序的一种操作系统。它是基于Amazon Machine Image(AMI)构建的,具有与AWS服务无缝集成的优势。通过使用AWSLinux,用户可以更轻松地管理和调度应用程序,提高应用程序的可靠性和性能。

AWSLinux具有很多强大的功能和命令,下面将介绍一些常用的AWSLinux命令,并且提供详细的操作流程。

1. ec2-run-instances

“`
ec2-run-instances
–key
–instance-type
–image-id
[–region ]
“`

这个命令用于启动一个EC2实例。在命令中,需要指定ssh_key(SSH密钥对的名称),instance_type(实例类型)和ami_id(AMI ID)。可选地,还可以指定region(实例所在的AWS区域)。

2. ec2-describe-instances

“`
ec2-describe-instances
[–region ]
“`

这个命令用于列出当前AWS账户下的所有EC2实例。在命令中,可以通过指定region来过滤只列出某个特定区域的实例。

3. ec2-start-instances

“`
ec2-start-instances

[–region ]
“`

这个命令用于启动一个或多个已停止的EC2实例。在命令中,需要指定instance_id(一个或多个实例的ID)。可选地,还可以指定region(实例所在的AWS区域)。

4. ec2-stop-instances

“`
ec2-stop-instances

[–region ]
“`

这个命令用于停止一个或多个运行中的EC2实例。在命令中,需要指定instance_id(一个或多个实例的ID)。可选地,还可以指定region(实例所在的AWS区域)。

5. ec2-terminate-instances

“`
ec2-terminate-instances

[–region ]
“`

这个命令用于终止一个或多个EC2实例。在命令中,需要指定instance_id(一个或多个实例的ID)。可选地,还可以指定region(实例所在的AWS区域)。

6. ec2-create-volume

“`
ec2-create-volume
–size
[–availability-zone ]
[–region ]
“`

这个命令用于创建一个新的EBS卷。在命令中,需要指定size(卷的大小,以GB为单位)。可选地,还可以指定availability_zone(卷所在的可用区域)和region(卷所在的AWS区域)。

7. ec2-describe-volumes

“`
ec2-describe-volumes
[–region ]
“`

这个命令用于列出当前AWS账户下的所有EBS卷。在命令中,可以通过指定region来过滤只列出某个特定区域的卷。

8. ec2-attach-volume

“`
ec2-attach-volume

–instance-id
–device
[–region ]
“`

这个命令用于将一个EBS卷附加到一个EC2实例。在命令中,需要指定volume_id(卷的ID),instance_id(实例的ID)和device(附加的设备名称)。可选地,还可以指定region(实例和卷所在的AWS区域)。

9. ec2-detach-volume

“`
ec2-detach-volume

[–region ]
“`

这个命令用于将一个附加到EC2实例的EBS卷从该实例上分离。在命令中,需要指定volume_id(卷的ID)。可选地,还可以指定region(卷所在的AWS区域)。

10. ec2-delete-volume

“`
ec2-delete-volume

[–region ]
“`

这个命令用于删除一个或多个EBS卷。在命令中,需要指定volume_id(一个或多个卷的ID)。可选地,还可以指定region(卷所在的AWS区域)。

以上是一些常用的AWSLinux命令及其操作流程,可以根据实际需求选择合适的命令进行操作。请注意,执行这些命令需要使用AWS凭证,并且需要正确配置AWS CLI才能正常运行。

CentOS7.9 搭建内部yum源服务器同步阿里yum源

环境说明:

1、企业内网需求:企业内部许多服务器是不能连接互联网,但每台centos主机安装软件包时都配置本地yum源很麻烦,也缺少第三方yum源,因此在内网搭建一台yum源服务器满足这一需求,同时网络层面策略只允许此yum源服务器每周日晚限时联网同步阿里云的yum源。

参考连接:http://blog.itpub.net/70004783/viewspace-2790196/

2、准备两台测试主机,一台用作yum源服务器(能连互联网),一台用作客户端。

3、系统版本:CentOS 7.9

 

实操步骤:

一、添加阿里云yum

备份原系统的repo

[root@yumserver ~]# mkdir /etc/yum.repos.d/backup
[root@yumserver ~]# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

添加阿里云yum源并缓存(Centos-7.repo是软件仓库配置文件,epel-7.repo是扩展源、提供额外的软件包)

[root@yumserver ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@yumserver ~]# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@yumserver ~]# yum makecache
[root@yumserver ~]# yum repolist

 二、安装相关软件

[root@yumserver ~]# yum install -y wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd yum-utils createrepo

备注:

yum-utils:yum-utils是yum的工具包集合,reposync一个同步工具。
createrepo:createrepo是一个对rpm文件进行索引建立的工具,就是对指定目录下的rpm文件进行检索,把每个rpm文件的信息存储到指定的索引文件中,这样方便远程yum命令在安装更新时进行检索。
httpd:通过Apache软件提供web服务,也可以使用nginx。

三、同步阿里云yum源软件包到本地服务器指定目录/mirror(自定义目录)

创建存放软件包目录/mirror,(chown设置文件所有者和文件关联组,chmod控制用户对文件的权限)

[root@yumserver ~]# mkdir -p /mirror
[root@yumserver ~]# chown -R apache:apache /mirror
[root@yumserver ~]# chmod -R 755 /mirror

同步阿里云yum源软件包

###参数-n指下载最新软件包,-p指定目录,指定本地的源--repoid(如果不指定就同步本地服务器所有的源),下载过程比较久(10个小时左右)
[root@yumserver ~]# reposync -n --repoid=extras --repoid=updates --repoid=base --repoid=epel -p /mirror

[root@yumserver ~]# du -sh /mirror/*
9.0G    /mirror/base
16G     /mirror/epel
323M    /mirror/extras
3.3G    /mirror/updates

四、创建仓库索引

createrepo -po /mirror/base/ /mirror/base/
createrepo -po /mirror/extras/ /mirror/extras/
createrepo -po /mirror/updates/ /mirror/updates/
createrepo -po /mirror/epel/ /mirror/epel/

五、更新数据源

createrepo --update /mirror/base/
createrepo --update /mirror/extras/
createrepo --update /mirror/updates/
createrepo --update /mirror/epel/

六、启动并配置Apache服务

6.1、启动Apache(httpd)服务(如果没有httpd,需要yum install -y httpd 安装一下)

[root@yumserver ~]# systemctl start httpd
[root@yumserver ~]# systemctl enable httpd
[root@yumserver ~]# systemctl status httpd

6.2、系统防火墙放行80端口(apache服务使用的是80端口)

[root@yumserver ~]# firewall-cmd --permanent --zone=public --add-port=80/tcp
success
[root@yumserver ~]# firewall-cmd --reload
success

 备注:必要时可以运行 systemctl restart httpd 重启一下服务。

6.3、关闭selinux(SELINUX=disabled)

[root@yumserver ~]# vi /etc/selinux/config 

CentOS7.9 搭建内部yum源服务器同步阿里yum源插图

6.4、配置httpd.conf文件

[root@yumserver ~]# vi /etc/httpd/conf/httpd.conf
DocumentRoot "/mirror/"
<Directory "/mirror/">
    Options Indexes FollowSymLinks
    AllowOverride  None
    Order allow,deny
    Allow from all
    Require all granted
</Directory>

 注意:上面配置的httpd.conf文件,需要找到如下图DocumentRoot字样的行进行更改,而不是直接复制粘贴插入。

CentOS7.9 搭建内部yum源服务器同步阿里yum源插图1

6.5、修改web界面的 index.html 文件

###修改Apache默认首页index.html,直接复制粘贴执行
cat << EOF > /usr/share/httpd/noindex/index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CentOS 7 镜像</title>

<script>document.createElement("myHero")</script>
<style>
myHero {
        display: block;
        background-color: #ddd;
        padding: 10px;
        font-size: 20px;
} 
</style> 

</head>
<body>
    <h1>简介</h1>
    <hr>
    <p>CentOS,是基于 Red Hat Linux 提供的可自由使用源代码的企业级 Linux 发行版本,是一个稳定,可预测,可管理和可复制的免费企业级计算平台。</p>
    <hr>
    <br>
    <br>

        <h1>CentOS 7 配置内部YUM源</h1>
    <br>
        <h2>1、备份</h2>
        <myHero>mkdir /etc/yum.repos.d/backup</myHero>
        <myHero>mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/</myHero>
    <br>
        <h2>2、下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ </h2>
        <myHero>curl -o /etc/yum.repos.d/CentOS-Base.repo http://xx.xx.xx.xx/repo/CentOS-Base.repo</myHero>
    <br>
        <h2>3、运行 yum makecache 生成缓存</h2>
    <br>
        <h2>4、运行 yum repolist   查看已经生成缓存</h2>
    <br>
    <br>

</body>
</html>
EOF

注意: 上文中的 http://xx.xx.xx.xx 填写自身yum源服务器的ip地址。

七、编写yum源客户端配置文件

创建repo文件夹

[root@yumserver ~]# mkdir -p /mirror/repo/
###复制粘贴执行,注意:xx.xx.xx.xx需要更改为服务器ip地址。

[root@yumserver ~]# cat << EOF > /mirror/repo/CentOS-Base.repo

[base]
name=CentOS- Base - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/base/
enable=1
gpgcheck=0
 
#released updates 
[updates]
name=CentOS- Updates - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/updates/
enable=1
gpgcheck=0
 
#additional packages that may be useful
[extras]
name=CentOS- Extras - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/extras/
enable=1
gpgcheck=0
 
#additional packages that may be useful
[epel]
name=CentOS- Epel - xx.xx.xx.xx
failovermethod=priority
baseurl=http://xx.xx.xx.xx/epel/
enable=1
gpgcheck=0
EOF

八、客户端配置yum

登录客户端操作系统执行以下命令(注意:xx.xx.xx.xx为yum源服务器的ip地址)

[root@client ~]# mkdir /etc/yum.repos.d/backup/
[root@client ~]# mv /etc/yum.repos.d/* /etc/yum.repos.d/backup/
[root@client ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://xx.xx.xx.xx/repo/CentOS-Base.repo
[root@client ~]# yum makecache

用户也可以用浏览器访问 http://xx.xx.xx.xx 查看配置客户端yum源的方法

CentOS7.9 搭建内部yum源服务器同步阿里yum源插图2

 九 、设置定时同步yum源的任务

编辑脚本

[root@yumserver ~]# cat  /mirror/script/centos_yum_update.sh
#!/bin/bash
echo 'Updating Aliyum Source'
DATETIME=`date +%F_%T`
exec > /var/log/aliyumrepo_$DATETIME.log
reposync -np /mirror
if [ $? -eq 0 ];then
 createrepo --update /mirror/base
  createrepo --update /mirror/extras
   createrepo --update /mirror/updates
   createrepo --update /mirror/epel
    echo "SUCESS: $DATETIME aliyum_yum update successful"
    else
     echo "ERROR: $DATETIME aliyum_yum update failed"
    fi

添加定时任务,每周一凌晨1点执行

[root@yumserver ~]# crontab -l
0 1 * * 1 /bin/bash /mirror/script/centos_yum_update.sh

至此,结束。。。

 

问题:有时服务器端的yum源仓库索引没有更新成功。
手动更新:
[root@yumserver ~]# createrepo --update /mirror/base/
[root@yumserver ~]# createrepo --update /mirror/extras/
[root@yumserver ~]# createrepo --update /mirror/updates/
[root@yumserver ~]# createrepo --update /mirror/epel/

BBR加速脚本(CentOS7*)

注意服务器的系统!

这里以Centos7.x为例子。

以下脚本也是收集的,一般GitHub上也有很多相关脚本,大家也可以自行搜索查看。

1、BBR加速脚本(CentOS7*)

Bash
wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh"    
chmod +x tcp.sh    
./tcp.sh

2.运行完成将出现以下菜单,可根据需要来安装相对应的核心,之后再打开加速功能。如图所示

BBR加速脚本(CentOS7*) 第1张

以安装BBR plus为例,输入数字2来安装。重启VPS如图:

BBR加速脚本(CentOS7*) 第2张

3.安装成功,重启VPS之后我们重新连接服务器。输入下列指令来启用其BBR plus。

BASIC
./tcp.sh

4.按照脚本菜单选项,选择对应安装的功能,来启用加速。

BBR加速脚本(CentOS7*) 第3张

5.如出现如图所示的信息,则表明BBR的加速功能已成功打开。

BBR加速脚本(CentOS7*) 第4张

6.如果必须安装或是转换其他版本的加速,必须再次打开脚本来进行卸载。卸载完成之后再选择所需的版本进行安装,之后需再次打开脚本来进行功能选择。

注意Centos8.x不能安装BBR PLUS加速,会导致连不上服务器的情况。

GitHub原地址:https://github.com/chiakge/Linux-NetSpeed

Centos7查看CPU使用率、内存使用率、磁盘使用率

一、查看CPU使用率

1. top 命令

Centos7查看CPU使用率、内存使用率、磁盘使用率插图
top命令可以看到总体的系统运行状态和cpu的使用率 。
%us:表示用户空间程序的cpu使用率(没有通过nice调度)
%sy:表示系统空间的cpu使用率,主要是内核程序。
%ni:表示用户空间且通过nice调度过的程序的cpu使用率。
%id:空闲cpu
%wa:cpu运行时在等待io的时间
%hi:cpu处理硬中断的数量
%si:cpu处理软中断的数量
%st:被虚拟机偷走的cpu
注:99.0 id,表示空闲CPU,即CPU未使用率,100%-99.0%=1%,即系统的cpu使用率为1%。

2、vmstat

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值

Centos7查看CPU使用率、内存使用率、磁盘使用率插图1
包括服务器的CPU使用率,
内存使用,
虚拟内存 交换情况,
IO读写情况
相比top,通过vmstat可以看到整个机器的 CPU,内存,IO的使用情况,
而不是单单看到各个进程的CPU使用率和内存使用率。

运行示例

一般vmstat工具的使用是通过

两个数字参数来完成的
第一个参数: 采样的时间间隔数,单位是秒,
第二个参数: 采样的次数
Centos7查看CPU使用率、内存使用率、磁盘使用率插图2

在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

Centos7查看CPU使用率、内存使用率、磁盘使用率插图3

参数详解

Linux 内存监控vmstat命令输出分成六个部分:

1、进程procs

    r:在运行队列中等待的进程数 。
    b:在等待io的进程数 。

2、内存memoy:

    swpd:现时可用的交换内存(单位KB)。 
    free:空闲的内存(单位KB)。
    buff: 缓冲去中的内存数(单位:KB)。
    cache:被用来做为高速缓存的内存数(单位:KB)。

swap交换页面

    si: 从磁盘交换到内存的交换页数量,单位:KB/秒。
    so: 从内存交换到磁盘的交换页数量,单位:KB/秒。

io块设备:

    bi: 发送到块设备的块数,单位:块/秒。
    bo: 从块设备接收到的块数,单位:块/秒。

system系统:

    in: 每秒的中断数,包括时钟中断。
    cs: 每秒的环境(上下文)转换次数。

cpu中央处理器:

    cs:用户进程使用的时间 。以百分比表示。
    sy:系统进程使用的时间。 以百分比表示。
    id:中央处理器的空闲时间 。以百分比表示。

常见诊断:

1、如:r经常大于4且id经常小于40,表示中央处理器的负荷很重。
2、如:bi,bo长期不等于0,表示物理内存容量太小。

每个参数的具体意思如下:

参数:r

表示运行队列(就是说多少个进程真的分配到CPU),
我测试的服务器目前CPU比较空闲,没什么程序在跑,
当这个值超过了CPU数目,就会出现CPU瓶颈 了。
这个也和top的负载有关系,
一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。
top的负载类似每秒的运行队 列。
如果运行队列过大,表示你的CPU很繁忙,一般会造成CPU使用率很高。

b

表示阻塞的进程,这个不多说,进程阻塞

swpd

虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,
如果不是程序内存泄露的原因,
那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free

空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

buff

Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,本机大概占用300多M

cache

cache直接用来记忆我们打开的文件,给文件做缓冲,
我本机大概占用300多M
(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,
是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si

每秒从磁盘读入虚拟内存的大小,如果这个值大于0,
表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。
我的机器内存充裕,一切正常。

so

每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi

块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,
默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,
但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,
磁盘写入速度差不多140M每秒

bo

块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。
bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。

in

每秒CPU的中断次数,包括时间中断

cs

每秒上下文切换次数,
例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,
这个值要越小越好,太大了,要考虑调低线程或者进程的 数目,
例如在apache和nginx这种web服务器中,
我们一般做性能测试时会进行几千并发甚至几万并发的测试,
选择web服务器的进程可以由进程或 者线程的峰值一直下调,压测,
直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。
系统调用也是,每次调用系统函数,我们的代码就会进入内核 空间,导致上下文切换,
这个是很耗资源,也要尽量避免频繁调用系统函数。
上下文切换次数过多表示你的CPU大部分浪费在上下文切换,
导致CPU干正经事的 时间少了,CPU没有充分利用,是不可取的。

us

用户CPU时间,我曾经在一个做加密解密很频繁的服务器上,
可以看到us接近100,r运行队列达到80(机器在做压力测试,性能表现不佳)。

sy

系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。

id

空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,
us是用户CPU使用率,sy是系统CPU使用率。

wt

等待IO CPU时间。

3、sar

sar命令语法和vmstat一样。命令不存在时需要安装sysstat包,这个包很有用。

命令示例:

例如每1秒采集一次CPU使用率,共采集5次。

# sar -u 1 5
Centos7查看CPU使用率、内存使用率、磁盘使用率插图4

进程队列长度和平均负载状态

例如每1秒采集一次,共采集5次。

Centos7查看CPU使用率、内存使用率、磁盘使用率插图5
runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载

4、dstat

事先安装

[root@DcServer ~]# yum install  dstat -y

每秒cpu使用率情况获取

Centos7查看CPU使用率、内存使用率、磁盘使用率插图6

最占cpu的进程获取

Centos7查看CPU使用率、内存使用率、磁盘使用率插图7

后续在进行补充。。。。。。

转自:https://zhuanlan.zhihu.com/p/356642255