因为一个很早以前就有的想法,我用旧电脑配件搭建了一个个人应用服务器,在上面部署了我的个人博客网站、笔记应用、密码管理后台、个人网盘等应用,听起来很高端吧,但其实就是下面这个极其粗糙且造价低廉的玩意儿:

里面除了风扇,其余的配件都是年份比较老的二手旧货,总的来说,性价比是相当的高👍

我最初的打算是搭建一个OpenWrt软路由,然后再以OpenWrt作为操作系统安装我需要使用的应用,这样就可以兼顾网络管理和其他应用的需求。我确实把它作为软路由使用了一段时间,但是在我安装配置其他应用的过程中,遇到了很多麻烦,而且由于我的需求过于小众,很难在网上找到这些问题的解决办法,同时在我安装了几个应用之后我发现我的这种用法对于我这颗两核4线程的老旧奔腾处理器来说实在有些力不从心。最后s经过了前后几个月断断续续的折腾,我最终还是放弃了以软路由作为操作系统搭建应用服务器的方案,转而使用成熟的Linux系统搭建。至于软路由方面的需求,以后单独买一个支持刷机的路由器折腾,那时我再单独写一篇文章介绍。

本文是“从零搭建个人应用服务器”系列博客的第一篇,详细介绍在搭建x86架构平台中各个主要硬件的重要参数(本文不涉及其他架构平台的硬件参数)。因为是x86架构,除了自建服务器外,本文的内容对于DIY个人电脑同样适用。

本系列博客的会覆盖硬件、操作系统、服务、应用等所有的内容。我个人很不喜欢那种“只讲怎么干,不讲为什么”的教程,或者就算讲了也讲得不明不白,所以我会尽量把我认为重要的技术细节讲清楚,作为笔记便于我自己以后查询的同时也希望能够帮助到有类似需求的朋友。

声明:我不是计算机类专业出身,也没有从事计算机相关的工作,做这一切都只是出于个人爱好。文中如果出现不准确、不恰当的内容还请谅解,如果方便的话希望能够将相关问题反馈到我的邮箱:jonas.tiederman.97@proton.me,或者添加我的TG帐号交流讨论。


先讲一下我自己的硬件配置,我使用的几乎都是二手电脑配件,选择一些发布年份比较久的二手配件会非常的便宜,性能上对于搭建个人的轻量应用服务器来说,只要参数合适,也是完全够用的。下面是我的配件清单:

名称

品牌

型号

价格(元)

备注

CPU

Intel

奔腾G4560T

35

CPU散热器

杂牌

塔式散热器

35

心急了,去电脑城买了个新的,实际上十几块钱随便买个普通的二手散热器就够用了

主板

技嘉

GA-H110M-S2

140

朋友送的,自己没花钱😁

固态硬盘

杂牌

SATA接口 60GB

24.9

机械硬盘

西数

移动硬盘

359

好几年前买的,先拿来凑合用,以后再买两块二手的机械硬盘组个RAID

内存条

威刚

2400MHz DDR4 4GB

23

电源

杂牌

300W 24pin

28

其实300W功率大了,不过和300W的电源和200W的也就几块钱的差距,所以还是选择了300W的电源

我为了图省事儿,二手配件都是在淘宝上买的,如果时间充裕,愿意花精力慢慢选的话,可以上咸鱼,或者去本地大一点的电脑城慢慢选,那样又可以省下一笔钱。

1 处理器(CPU)

CPU绝对是装机的核心,它决定了你能选什么主板、什么内存、扩展能力等等,整台机器能够达到什么性能完全受CPU限制。如果你是在组装一台游戏电脑、视频/图像编辑工作站、3D建模工作站或者大模型服务器,你可能会把注意力的重心放到GPU上,但实际上你能够装什么样的GPU以及你的GPU性能能够发挥到什么水平同样受到CPU的限制。本节主要介绍CPU的核心参数,我将依据参数的重要性由高到低逐个讲解各个参数的意义,并简要说明如何根据个人的需求选择合适的参数。

1.1 核心(Cores)与线程(Threads)

核心(Core)

核心是处理器中能够独立执行指令、处理数据的最小物理执行单元。你可以将处理器想象成一个大型协作中心,每一个核心就是一位拥有独立工位和工具箱的“办事员”。核心数量的增加,直接提升了处理器在处理多线程任务时的并行计算能力与数据吞吐量。在运行支持多核优化的应用(如虚拟化、渲染或多任务并发)时,更多的核心意味着更高的执行效率。

像视频剪辑/转码和游戏等应用,都使用多核心并行运行任务,随着核心数量增加,性能提升巨大。如果你打算买游戏电脑或笔记本,建议选至少6核的笔记本。对于专业视频剪辑工作,8核CPU是理想的选择;而打造工作站时,建议选12核或16核CPU[2],对于搭建一个轻量应用服务器,两核甚至单核一般就足够用,如果需要部署的应用较多,可以考虑选择4核处理器。

线程(Thread)

线程是操作系统能够进行运算调度的最小单位,它被包含在进程(Process)之中。简单来说,一个运行中的应用程序即为一个进程,为了提高执行效率,进程可以被划分为多个独立执行的指令流,即线程。在同一个进程下,所有线程共享该进程的虚拟地址空间与系统资源(如代码段、全局变量及打开的文件),但每个线程都拥有独立的程序计数器(PC)和栈空间以确保执行流互不干扰。举例而言, 一个简单的自动化脚本可能仅包含单一执行流(单线程);而复杂的现代应用(如浏览器)则是典型的多线程应用:某些线程负责 UI 界面的渲染响应,另一些则在后台处理网络请求或数据解析。这种并发机制使得应用在处理耗时任务时,依然能保持界面的流畅交互。

超线程(Hyper-Threading)

超线程是由Intel于2002年2月提出的一个营销名词,Intel最早将这种技术应用于Xeon服务器平台处理器[3],但实际上这项技术最早由IBM于1968年作为ACS-360项目的一部分进行研究[4],学名为同步多线程(SMT,Simultaneous Multithreading)。最早采用同步多线程技术开发的商业处理器是DCE(Digital Equipment Corporation)开发的Alpha 21464,该芯片后来转由Compaq Computer Corporation开发,但由于Compaq于2001年6月宣布终止Alpha架构系列的芯片开发,Alpha 21464的开发也随之夭折[6]。至今,AMD仍然采用同步多线程(Simultaneous Multithreading)这个名称描述其芯片采用的该项技术,下文中我将以多线程一词来表示该项技术。

从硬件层面看,多线程技术通过在单个物理核心内复制一份“架构状态”(如通用寄存器、控制寄存器等),使其在操作系统面前呈现为两个逻辑处理器。虽然运算能力有所提升,但由于两个逻辑线程必须共享物理核心内的执行单元和缓存,其性能表现存在明显的边际效应。通常情况下:4核8线程的CPU性能优于4核无多线程支持的CPU,但是要劣于8核无多线程支持的CPU。

最简单的多线程实现方式,是让一个线程持续运行,直到它被一个通常会引发长延迟停顿的事件阻塞。这类停顿可能是缓存未命中——此时需要访问芯片外存储器,数据返回可能需要数百个CPU周期。面对这种情况,多线程处理器不会等待停顿解除,而是会将执行切换到另一个处于就绪状态的线程。只有当先前线程的数据返回后,该线程才会被重新放回就绪线程列表中[5]。

举例说明:

  • 周期i:线程A的指令j被发射。

  • 周期i+1:线程A的指令j+1被发射。

  • 周期i+2:线程A的指令j+2被发射,这是一条加载指令,且在所有缓存中均未命中。

  • 周期i+3:线程调度器被调用,切换至线程B。

  • 周期i+4:线程B的指令k被发射。

  • 周期i+5:线程B的指令k+1被发射。

目前的多数消费级处理器都支持多线程技术,而Intel自其生产的12代处理器起,开始在一些处理器中采用混合核心/线程架构(Hybrid Core / Thread Architecture)。其核心分为两种类型,分别是性能核(Performance Core)和效率核(Efficient Core),只有性能核支持超线程,效率核则不支持[2],其总的线程数为:

性能核数量×2+效率核数量

1.2 时钟频率(Clock Speed)

CPU的运算由其内部的一个以特定频率运行的时钟驱动,我们所说的频率就是这个时钟的频率(单位:GHz),也就是每秒钟时钟循环的周期数。在每一个时钟周期中CPU会完成一定数量的指令,频率越高,每秒的时钟周期数就越多,一般来说就代表了CPU的运行速度越快。

另一个与时钟相关的参数为每时钟周期指令数(IPC,Instructions Per Clock),也就是每时钟周期内处理器执行的指令数。IPC数值乘以核心主频,即可得出 CPU 每秒可执行的指令总数。有些时候,一款主频略低但 IPC 更高的 CPU,性能反而会超过另一款主频更高、但 IPC 更低的处理器[1]。一般来说,同一品牌中越新的处理器IPC数值越高,因为采用了更新的架构设计,优化了CPU的总体性能。

睿频加速(Turbo Boost)

CPU并不总是需要以最大频率运行。有些程序更依赖内存才能顺畅运行,而另一些则对CPU需求较大。睿频加速技术是一种节能解决方案:它让CPU在处理轻负载时以基础时钟频率运行,重负载时则跳升到更高频率。以较低的时钟频率运行,可以让CPU消耗更少的功耗,从而降低发热,移动设备中可有效增加电池续航。但当需要负载短时增加时,睿频加速技术会动态提高时钟频率以补偿。这有时被称为算法超频(Algorithmic Overclocking)[7]。这项技术在AMD中被称之为精准加速(Precision Boost),而学术上将这项技术称为动态频率缩放(DFS,Dynamic Frequency Scaling)。

超频(Overclocking)

超频是指将半导体器件(如处理器)的时钟频率提高到超出其额定频率的做法,其原理是通过提升外频或倍频增加主频(主频=外频×倍频),其中Intel处理器通常锁定倍频需调整外频,AMD处理器可调节倍频但外频调整效果更显著。外频的提升不仅直接影响CPU性能,还会同步提升前端总线与内存的运行速度,形成系统性性能增益[9]。然而,超频设备寿命可能更短,变得不稳定且不可靠,极端情况下甚至永久损坏。许多厂商的保修中不涵盖超频造成的损坏,而有些厂商则允许超频在预设的安全范围内[8]。

如果你的CPU支持超频,那么超频是同等硬件配置下提升性能的最快捷径。但如前所述,超频存在一定风险,对于多数用户来说,最好是保持官方设定的主频,非必要不配置超频。

对于日常办公或家庭基础应用,2.5GHz 至 3.0GHz 的基准频率已足以支撑流畅体验;若有大型 3A 游戏或高强度生产力需求,建议选择基准频率在 3.0GHz 以上、且最高加速频率(睿频)能达到 4.5GHz 或更高水平的处理器,以确保复杂场景下的瞬时响应速度。至于轻量应用服务器,其性能需求与办公电脑类似,但在选型时可适度降低对高睿频的追求,更多关注多核效能与长时运行的功耗表现。

1.3 缓存(Cache)

CPU缓存是CPU内部的高速存储器,用于降低从内存访问数据的平均成本(时间或能量)。缓存是一种较小、更快的内存,位于处理器核心附近,存储来自常用主存位置的数据副本,避免了每次访问主存时都需要访问速度低数十倍甚至数百倍的主存[10]。CPU缓存与一般的内存在电气层面是完全不同的,一般的内存属于动态随机存储器(DRAM,Dynamic Random Access Memory),而CPU缓存属于静态随机存储器(SRAM,Static Random Access Memory),他们有完全不同的结构和特性。DRAM结构简单,价格便宜很多,但是速度远不及SRAM。

✏️ Note

动态随机存储器(DRAM,Dynamic Random Access Memory)

在DRAM中,每一位数据都存储在由一个电容和一个晶体管构成的电路单元中。这样的结构极其简单,这意味着DRAM可以在极小的面积上集成数百万个这样的电路单元。但另一方面,电容存放一段时间后会流失电荷,因此动态内存需要进行定期的充电刷新。充电期间,内存无法读取或写入数据。动态内存相比静态内存造价更低,同时功耗也低得多。但正如前文所述,动态随机存取内存中的数据无法随时即时调用,运行速度也跟不上处理器的处理速率[10][11]。

静态随机存储器(SRAM,Static Random Access Memory)

SRAM的运行速度可以与CPU持平,因为它的每一位数据都存储在一种名为触发器的电路单元中。触发器无需刷新周期,能够以零延迟或极低延迟传输数据。但缺点在于,触发器需要由多个晶体管(4到6个)构成,体积远大于单个电容和晶体管构成的电路。这就意味着,在同等芯片面积上,SRAM会相比DRAM集成少得多的电路单元。因此,静态存储器的存储密度更低,单颗芯片的容量也就更小。除此之外,静态存储器造价更高、功耗更大,发热量也更高[10][11]​。

多级缓存(L-Cache)

大多数中央处理器拥有多级缓存架构(L1——一级缓存、L2——二级缓存、通常还有L3——三级缓存,少数情况下甚至具备L4——四级缓存),其中L1又分为独立的指令缓存(Instruction Cache)和数据缓存(Data Cache)。不同层级的缓存分布在CPU芯片的不同区域;L1尽可能靠近CPU核心布置,凭借更短的信号传输路径实现最高的运行速度,但对设计工艺要求严苛。L2与CPU核心物理分离,运行速度相对较慢,不过对芯片设计人员的研发限制更少,可在不影响处理器核心设计的前提下做到更大容量。三级缓存通常由多个处理器核心共享使用[10]。

内存层级

1.4 热设计功率(TDP,Thermal Design Power)

1.5 芯片组(Chipset)

1.6 内存支持(Memory Support)

1.7 集成显卡(Integrated Graphics)

2 主板(Motherboard)

3 内存(RAM,Random Access Memory)

4 硬盘(Hard Drive)

5 电源(PSU,Power Supply Unit)


参考资料

[1] Beginner's guide to CPU specs

[2] 12 Important Specifications of Processor (CPU) Explained – The Ultimate Guide

[3] Wikipedia: Hyper-threading

[4] Wikipedia: Simultaneous multithreading

[5] Wikipedia: Multithreading (computer architecture)

[6] Wikipedia: Alpha 21464

[7] What Is Intel Turbo Boost Technology?

[8] Wikipedia: Overclocking

[9] 百度百科:超频技术

[10] Wikipedia: CPU cache

[11] How The Cache Memory Works

[12] Understanding CPU Cache Organization and Structure