欢迎光临
我们一直在努力
广告
广告
广告
广告
广告
广告
广告
广告
广告
广告

服务器配置与成本:最佳实践 (服务器配置与管理)

服务器配置与成本

优化服务器配置以实现最大性能和成本效益至关重要。本文旨在提供最佳实践指南,帮助您配置服务器以满足您的业务需求,同时最大限度地降低成本。

服务器配置最佳实践

1. 确定您的工作负载和需求

在配置服务器之前,至关重要的是了解您的工作负载和应用程序需求。这将帮助您确定适当的硬件和软件配置。考虑以下因素:应用程序的类型和功能同时用户数数据处理量处理时间要求

2. 选择合适的硬件

硬件选择是服务器配置的关键部分。主要因素包括:CPU:选择具有足够核心数量和时钟速度的 CPU,以处理您的工作负载。内存 (RAM):确定应用程序所需的内存量,并留出额外的余量以满足未来增长。存储:选择具有足够容量和 I/O 速度的存储设备,以满足您的需求。网络:选择具有足够带宽和连接性的网络接口,以支持您的数据传输需求。

3. 优化操作系统和软件

操作系统 (OS) 和软件配置对于服务器性能至关重要。考虑以下最佳实践:选择高效的 OS:使用为您的工作负载类型设计的 OS,例如 Linux 或 Windows Server。定期更新:始终应用操作系统和软件更新,以提高安全性、性能和稳定性。调整设置:根据您的工作负载需求调整 OS 和软件设置,例如进程优先级和资源限制。

4. 虚拟化

虚拟化允许您在单个物理服务器上运行多个虚拟机 (VM)。它可以提高资源利用率、降低成本并提高灵活性。考虑以下最佳实践:选择合适的虚拟化软件:选择满足您需求的虚拟化软件,例如 VMware 或 Hyper-V。优化 VM 配置:为每个 VM 分配适当的 CPU、内存和存储资源。


文华财经云服务器怎么设置

为了设置文华财经云服务器,您需要首先登录到服务器管理控制台。

在这个阶段,您将能够选择创建新的云服务器实例,根据您的需求挑选合适的操作系统、配置以及存储。

接下来,您需要设置网络和安全组规则,以确保云服务器的网络连接稳定且安全。

这一步骤对于保障服务器的安全性至关重要。

此外,您还可以配置域名和SSL证书,这样您的网站便能通过安全的加密连接进行访问,保护用户的隐私和数据安全。

配置SSL证书不仅能提高用户体验,还能增强网站的可信度。

在完成上述设置后,接下来的步骤是安装所需的软件和应用程序,并进行必要的配置。

这一步骤根据您的业务需求而定,可能包括安装特定的交易软件、数据库系统或其他业务相关的应用程序。

完成这些配置后,您的文华财经云服务器就设置好了,可以开始使用了。

此时,您就可以通过网络访问您的服务器,开始进行数据处理、交易操作或其他业务活动。

在整个过程中,确保遵循最佳实践和安全规范,以维护系统的稳定性和安全性。

值得注意的是,设置过程中可能遇到各种问题,例如网络延迟、安全配置不当或软件安装失败等。

在这种情况下,您应查阅相关文档或联系技术支持以获取帮助。

通过这些步骤,您可以确保云服务器顺利运行,为您的业务提供可靠的支持。

C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)

教程说明

C++高性能网络服务保姆级教程

首发地址

day03 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、csudo yum install centos-release-scl-rh7管理配置)

前言

经过前面两节课,我们已经从零开始写出了一个基于epoll和reaC++tor多线程模型的高并发的网络服务器,为后面的内网穿透项目打下了相关基础。

工欲善其事,必先利其器,在继续往下讲项目的具体实现前,这节课带大家先把开发环境搭建配置好。

vscode远程开发配置

由于后面项目用到了epoll和splice,这些都是unix环境中才有的调用,所以我们还是需要在linux环境中开发,我选用的vscode连接linux进行远程开发

选用vscode的原因

在这里只跟clion做下比较,clion支持的full remote development,基本原理是自动同步本地目录和远端服务器目录,在写代码时,用的还是本地环境,无法识别unix特有的那些头文件。

而vscode的远程开发,是把开发者自己机器上的 VSCode 原样拷贝到作为目标机器(Remote Host)上,以服务的形式运行,而本地的 VSCode 作为客户端,两者之间通过远程通讯协议彼此协调合作,实际上的开发工作主要是在服务端完成的。

配置流程

支持ssh公钥登录远程服务器

安装remote-ssh远程插件

安装后重启可以在侧边栏看见这个

添加ssh target

点击「SSH TARGETS」旁边的「Configure」,选择编辑第一个文件(用户目录下的/config)

在文件中填上服务器连接信息如下,更多配置信息可点击这里

添加远程工作区

点击「RemoteServer」后面的connection按钮,会打开一个新vscode窗口,等待连接远程服务器并完成一些初始化工作后,可点击「Open Folder」添加服务器的目录。

安装C++扩展

为了方便C++开发,我们需要添加C++扩展

clang-format格式化代码

开发一个项目时,一般是由多个程序员共同开发维护,如果每个人的编码习惯风格都不同,整个项目可能风格杂乱,可读性差,不利于项目维护。

clang-format支持的代码风格有google、llvm、Chromium Mozilla、WebKit,我们项目使用google风格。

安装clang-format

ubuntu安装

直接从apt仓库安装即可

sudo apt-get install clang-format

centos安装

centos 的yum仓库中并没有clang-format的安装包,需要更新repo源:

sudo yum install centos-release-scl-rh

之后下载clang-format:

sudo yum install llvm-toolset-7-git-clang-format

由于clang-format安装的位置不在系统的PATH变量中,所以这个时候在命令行还找不到clang-format命令。我们需要更新path变量,将clang-format的执行文件夹添加到path变量中:

找到clang-format执行文件夹

sudo find / -name *clang-format*…/opt/rh/llvm-toolset-7/root/usr/bin/clang-format…

编辑~/文件,更新path变量

export PATH=$PATH:/opt/rh/llvm-toolset-7/root/usr/bin创建clang-format文件

输入以下命令就会按照google的格式在在当前路径下生成-format文件。

clang-format -style=google -dump-config > -format

大家只要讨论确认clang-format的具体内容,然后在项目根目录中加入这个文件,代码的风格问题就解决了。

vscode支持clang-format

配置在vscode保存文件后自动进行格式化

在扩展商店中搜索安装clang-format插件

打开设置面板,之后在输入框输入clang-format,在「工作区」tab上找到style选项,修改为「file」,表示按照我们自己定义的-format文件进行格式化

打开设置面板,在输入框中输入save,在「工作区」tab上把「format on save」选项勾选上

代码检查工具clang-tidy

clang-tidy是一个功能十分强大的代码检查工具,能帮助我们现代化代码,提高代码的可读性

clang-tidy的安装

ubuntu安装

sudo apt-get install clang-tidy

centos安装

(1)sudo yum install centos-release-scl(2)sudo yum install llvm-toolset-7(3)sudo yum install llvm-toolset-7-clang-analyzer llvm-toolset-7-clang-tools-extra(4)scl enable llvm-toolset-7 clang -v(5)scl enable llvm-toolset-7 lldb -v(6)scl enable llvm-toolset-7 bashclang-tidy使用// 列出所有的check$ clang-tidy -list-checks -checks=*// 找出中所有没有用到的using declarations. 后面的`–`表示这个文件不在compilation path/to/ –// 找出中所有没有用到的using declarations并自动fix(删除掉)$ clang-tidy -checks=-*,misc-unused-using-decls -fix path/to/ –// 找出a.c中没有用到的using declarations. 这里需要path/to/project/compile_存在$ clang-tidy -checks=-*,misc-unused-using-decls path/to/project/

如果在被分析的文件后面没有–, clang-tidy会从目录下查找compliation database,这个database就是compile_文件,里面包含该项目中所有的编译单元的编译命令。

在使用之前要导出这个文件。

目前已经有工具帮我们做了这项工作。

如果是csudo yum install centos-release-scl-rh7的项目,通过csudo yum install centos-release-scl-rh7 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON path/to/llvm/sources命令导出;

csudo yum install centos-release-scl-rh7版本需要大于3.5

如果是GYP项目,通过ninja -C out/D -t compdb cc cxx objc objcxx > compile_;

如果是sudo yum install centos-release-scl-rh7项目,使用Bear工具;

除了通过“-checks=”来设定检查规则,还可以在项目主目录之下添加-tidy文件,在里面编写项目的检查规则,这种方式更加适合对整个项目进行定制化的规则编写。

-tidy文件并不是必须放在主目录之下,只是通常放在主目录之下方便对整个项目进行检查。

sudo yum install centos-release-scl-rh0

上面的使用方法中,一次只能分析一个文件,如何一次性分析整个项目的文件呢?clang-tidy提供了run_clang_脚本,通过多进程的方法对整个项目文件进行分析。(具体使用方法可参考下面的csudo yum install centos-release-scl-rh7写法)

csudo yum install centos-release-scl-rh7实现代码工程化

随着项目越来越复杂,模块越来越多,我们继续手动写sudo yum install centos-release-scl-rh7file去构建项目显然不太合适,为了方便管理、构建复杂项目,使用csudo yum install centos-release-scl-rh7作为构建工具是个不错的选择。

csudo yum install centos-release-scl-rh7是一个跨平台、开源的构建工具,可以方便的产生可移植的sudo yum install centos-release-scl-rh7file,简化手动写sudo yum install centos-release-scl-rh7file的工作量。

使用csudo yum install centos-release-scl-rh7生成sudo yum install centos-release-scl-rh7file文件并编译一个分以下流程:

在根目录及每个模块目录下编写

在根目录创建一个build文件夹

进入build目录,执行csudo yum install centos-release-scl-rh7 …/ 生成整个项目的sudo yum install centos-release-scl-rh7file

执行sudo yum install centos-release-scl-rh7和sudo yum install centos-release-scl-rh7 install进行编译和安装。

csudo yum install centos-release-scl-rh7的命令较多,详细教程可参考yum install centos-release-scl-rh7实践

CProxy的代码目录结构如下

sudo yum install centos-release-scl-rh1

server目录是CProxy服务端目录,client目录是CProxy客户端目录,server和client分别能构建出可执行的程序;lib目录则存放一些被server和client调用的库函数。

首先,我们先在项目根目录上创建一个

sudo yum install centos-release-scl-rh2

上面的添加了lib、server、client三个子目录,所以需要在这三个目录中也添加

sudo yum install centos-release-scl-rh3sudo yum install centos-release-scl-rh4sudo yum install centos-release-scl-rh5

在根目录创建build目录,并执行csudo yum install centos-release-scl-rh7 .. 生成整个项目的sudo yum install centos-release-scl-rh7file

sudo yum install centos-release-scl-rh6

在build目录下执行sudo yum install centos-release-scl-rh7进行编译

sudo yum install centos-release-scl-rh7clang-tidy在csudo yum install centos-release-scl-rh7中的配置

为了方便clang-tidy在项目中的使用,可以在根目录的添加如下配置

# 用于输出clang-tidy需要用到的compile_文件# 这一行需要放在add_subdirectory/aux_source_directory之前set(CMAKE_EXPORT_COMPILE_COMMANDS ON)set(CLANG_SEARCH_PATH /usr/local/bin /usr/bin /usr/local/opt/llvm/bin /usr/local/opt/llvm@8/bin /usr/local/Cellar/llvm/8.0.1/bin)if (NOT DEFINED CLANG_TIDY_BIN)# attempt to find the binary if user did not specifyfind_program(CLANG_TIDY_BINNAMES clang-tidy clang-fidy-8HINTS ${CLANG_SEARCH_PATH})endif ()if (${CLANG_TIDY_BIN} STREQUAL CLANG_TIDY_BIN-NOTFOUND)message(WARNING couldnt find clang-tidy.)else ()message(STATUS found clang-fidy at ${CLANG_TIDY_BIN})endif ()# 添加clang-tidy命令add_custom_target(clang-tidy COMMAND python ${CMAKE_SOURCE_DIR}/# run LLVMs clang-tidy script-clang-tidy-binary ${CLANG_TIDY_BIN} # using our clang-tidy binary-p ${CMAKE_BINARY_DIR}# using csudo yum install centos-release-scl-rh7s generated compile commands)

执行csudo yum install centos-release-scl-rh7获取到Makefile后,在build目录下执行sudo yum install centos-release-scl-rh7 clang-tidy, 即可对整个项目进行代码分析。

ccache加速编译

随着项目代码量越来越多,编译花费的时间会很长,在调试代码时,我们可能只改了一行代码,每次要编译个几分钟。

这个时候就轮到ccache登场了。

它将在第一遍编译时多花几秒钟,但接下来就会使编译成倍(5-10倍)的提速。

ccache 的基本原理是通过将头文件高速缓存到源文件之中而改进了构建性能,因而通过减少每一步编译时添加头文件所需要的时间而提高了构建速度。

ccache安装sudo yum install centos-release-scl-rh9结合csudo yum install centos-release-scl-rh7使用

在根目录的加上下面这段代码

sudo yum install llvm-toolset-7-git-clang-format0

重新进行编译,会发现第一遍还是比较久,但之后的编译速度就会变的很快了。

文章涉及到的代码文件可直接查看CProxy,欢迎fork and star!

原文:

day03 C++项目开发配置最佳实践(vscode远程开发配置、格式化、代码检查、cmake管理配置)

经过前面两节课的铺垫,我们已经成功搭建了一个基于epoll和reactor多线程模型的高并发网络服务器,为后续的内网穿透项目打下了坚实的基础。

为了确保项目开发效率和质量,接下来的课程将重点介绍开发环境的配置最佳实践,包括使用VSCode进行远程开发、代码格式化、代码检查以及CMake管理配置。

选择VSCode进行远程开发的原因在于,它提供了与Clion不同的解决方案。

Clion虽然支持全远程开发,但其工作原理是自动同步本地目录与服务器目录,导致本地环境无法识别Unix特有的头文件。

而VSCode的远程开发模式则在开发者本地机器上运行VSCode服务,并通过远程通讯协议与目标机器协同工作,实现了在本地进行实际开发,有效解决了与Unix环境相关的头文件识别问题。

配置流程主要包括安装VSCode并设置SSH连接,配置/config文件以指定服务器连接信息,安装C++相关扩展,以及设置格式化工具clang-format。

通过编写-format文件并将其应用到VSCode中,可以确保代码风格一致性。

此外,VSCode还提供了自动格式化功能,进一步简化了代码维护过程。

为了提高代码质量,我们引入了代码检查工具clang-tidy。

通过安装和配置,可以实现对代码进行自动化检查,以便及时发现潜在问题并改进代码质量。

同时,使用CMake作为构建工具,可以生成可移植的makefile,简化项目构建流程。

在文件中,我们定义了项目的目录结构,并在根目录下创建了build目录,通过cmake命令生成makefile后,使用make命令进行编译。

为了进一步加速编译过程,我们引入了ccache工具,它通过缓存编译过程中的头文件来显著提高编译速度,尤其在进行频繁编译时效果显著。

整个配置实践涵盖了从环境搭建、代码风格统一、自动化检查到构建工具选择等多个方面,旨在提升开发效率和代码质量。

所有涉及的代码配置文件和详细教程都可以在项目仓库中找到,欢迎通过fork和star的方式参与其中。

同时,如果您觉得本文内容对您有帮助,不妨点个赞或关注我,未来将带来更多有价值的内容分享。

赞(0)
未经允许不得转载:优乐评测网 » 服务器配置与成本:最佳实践 (服务器配置与管理)

优乐评测网 找服务器 更专业 更方便 更快捷!

专注IDC行业资源共享发布,给大家带来方便快捷的资源查找平台!

联系我们