性能调优第一步:服务器硬件如何选型
硬件选型是调优的第一步,无论你是自行购买服务器进行托管,还是租用服务器,或者购买云主机,都要面临的一个问题,那就是选择服务器的硬件配置,因为没有一台服务器能满足所有需求,解决所有的问题。所以,硬件调优仍然是运维的重要舞台。
不成功的服务器选型会给企业带来很多运营问题:如果不经过专业、仔细的评估,轻率的选择一台性能超强劲的服务器,可能会让你高枕无忧,但付出的代价是昂贵的价格和成本的浪费;反之,如果一味为了省钱,而选择一台配置低端、廉价,或没有充分考虑冗余措施的服务器,就会极大影响业务的运行,让运维坐立不安,可能出现客户投诉网站速度超慢,硬盘出现故障丢失数据的问题,因为这些,运维从此没有了美好的睡眠,每日提心吊胆,更要命的是,公司可能因此而损失几十万元甚至更多的订单。
所以,我们需要从不同角度、多个方面来决定选择一台什么样的服务器,找到满足技术需要、业务发展和成本控制之间的最佳平衡点,为了做到这一点,需要了解业务特点、业务架构、软件特性、硬件特性,这绝对是个大工程,需要技术的沉淀和经验的积累。
那么接下来,我们就来谈谈如何进行硬件选型。
一、服务器要运行什么应用?
这是硬件选型首先需要考虑的问题,我们采购服务器是做什么用的,这个非常重要,在这里我们要根据服务器的用途,来决定服务器的性能、容量和可靠性需求。
这里我们按照最典型的基础架构:web服务器、数据服务器、应用程序服务器来展开讨论。
1、web服务器选型特征
web服务器主要用来运行web服务,提供对外访问,常见的有静态Web服务器、动态Web服务器、图片服务器等,这些应用的服务器,对硬件要求不高,或者说,不需要太高的硬件配置,为什么呢,因为web服务器一般不会是一台,在应对海量访问的时候,web服务通常都会构建集群模式,例如通过nginx、lvs、、haproxy、F5等集群软件构建web服务的负载均衡,通过负载均衡机制,可以很容易解决web服务器的性能扩展和可靠性问题。因此,对此类web服务器硬件不推荐很高的配置,甚至一般的硬件配置(2颗4核、8G内存、1T硬盘)即可满足需求,如果后期web服务访问量上升,只需要新增同等配置的服务器加入负载均衡集群即可实现web服务的性能扩展。
2、数据服务器
数据服务器主要是用来存储结构化和非结构化数据的,例如MySQL服务器、Oracle服务器、Redis服务器等,对于这类服务器,对硬件要求最高,最重要的服务器,此类服务器的主要特征是CPU要足够快、内存足够大,磁盘IO足够快和稳定,比如MySQL、Oracle服务器要求CPU配置一定要好,最好是双路志强金牌Gold,磁盘最好使用SSD系列。而Redis服务器主要是内存型应用,所以要求内存一定要足够大,并且可扩展,而对磁盘和CPU要求就没那么高。一般配置即可。
3、应用程序服务器
这里的应用程序服务器指的是基于Java、Python、golang、nodejs等应用的服务器,例如tomcat、jboss、Weblogic、Jetty等,这些应用服务器的典型特征是承担了计算和功能实现,因此对硬件有一定要求,首先,对CPU的配置,至少是双路志强银牌Silver系列,对于可靠性问题,如果你只有一台服务器的话,那么这台服务器必须足够可靠,磁盘做成RAID1阵列是必不可少的,如果预算充足,那么建议配置至少两台应用服务器,并部署高可用冗余或负载均衡机制,这样的话,每台主机的硬件配置就不需要太高即可满足可靠性和稳定性的需求。
4、其它公用服务器
除了上面的一些类型的服务器外,还有一些公用的服务器,例如邮件服务器、DNS服务器、域控服务器,其中,DNS服务器、域控服务器对稳定性要求较高,因此一般会推荐有至少两台进行主、备部署,对硬件来说,没有特殊的需求,所以一般的硬件即可,例如志强银牌Silver CPU、32GB内存、SAS磁盘,基本可以满足要求,而对于邮件服务器,数据安全性需要保证,所以选择磁盘存储的时候,推荐构建RAID10或RAID5阵列,这主要是为了对邮件数据安全负责,需要重点考虑这方面的需求。
好啦,对于常见的业务服务器选型,我们都给出了选型特征以及要注意的事项。关于准确的配置我们需要再讨论业务需求后才能作决定。
二、业务系统需要支持多少用户访问?
硬件服务器是为了提供某种服务,而使用这些服务的用户有多少,也是我们需要考虑的因素,有几个具体的问题需要我们做出评估:
1、预估有多少用户会同时在线访问?
2、预估每天同时在线访问的最高峰值大概是多少?
3、预估数据量会有多大?
4、预估网络带宽会占用多少?
这些指标不需要很精确的值,但是一定要有个大概的方向,因为这对我们采用什么样的CPU,配置多大的内存、采购多大的磁盘、选择什么类型的网卡等有着至关重要的影响。
建议让技术人员和业务部门坐在一起来讨论这几个问题,将这些预估指标转化为一些更具体的技术数字,同时,我们还要对未来的用户增长做一个尽可能准确的预测和规划,这有助于后期给服务器硬件扩展预留空间和接口。
三、需要多大空间来存储数据?
对存储空间的预估也非常重要,因为如果预估不当,后期扩展磁盘就会非常麻烦,我们需要从两个角度来考虑这个问题,一个角度是有哪些类别的数据,例如安装操作系统占用的磁盘空间、安装应用程序占用的磁盘空间、应用系统产生的日志、数据库数据、邮件数据等,另一个角度是数据的增长速度,例如每天大概会新增多少数据,根据这个增速,就可以规划出未来1-3年内数据量大小,也就是说磁盘存储的采购,最好是能满足未来1-3年内的需求。这两个角度的预估也需要软件开发人员和业务人员一起讨论,提供足够的信息。最后我们才能得到一个更具体的数字,但这个具体的数据并不是最终结果,还需要为计算出来的数字结果乘1.5左右的系数,得到最终的结果,为何要乘以1.5呢,这是一个预留空间,目的是方便运维的日常备份以及维护需要。
四、业务重要性有多高?
服务器可以为不同业务系统提供各种应用服务,这个重要性直接影响到我们对服务器的选型配置,例如,我们采购服务器是做一个公司的门户网站,那么,一台服务器,铜牌Bronze 单路cpu、4G内存、500GB足够了,并且也不需要备机,就算服务器出现了一点硬件故障,导致几个小时甚至一两天不能提供访问,工作也会照常继续,天也不会塌下来。对公司也影响不大。
如果我们的服务器是用于测试平台,如果仅仅做功能测试,那么对硬件配置基本没要求,虚拟机也可以满足要求,而如果是做性能测试,那么就根据性能测试的方向,选择某方面比较强劲的硬件即可,例如做web压力测试的服务器,选择足够好的CPU即可,此外,测试服务器只需要定期做个例行备份即可,因此也不需要考虑主、备模式以及磁盘的高可靠性。
如果我们要上线的是一个电商平台,那么对于服务器的选型,一定要足够慎重,因为它不容发生任何问题,CPU要足够好,内存也要足够大,磁盘一定要做RAID10,同时,还要部署主、备架构,数据要做实时备份、异地远程备份,因为重要的业务系统,一旦发生故障,直接导致的损失就是金钱。因此,对于非常重要的业务系统,在成本允许的前提下一定要选择足够好的硬件配置。
五、怎么选择CPU
上面介绍了在选购硬件之前要考虑的一些列问题,下面就正式进入硬件选购的话题了。首先说说CPU,毫无疑问,CPU的主频越高,其性能也更高;两个CPU要比一个CPU来得更爽,说到品牌,也就是Intel和AMD,Intel服务器市场份额更高一些,要选CPU,一个特征是选购最新的,那就没错了,例如Intel至强CPU从E3、E5、E7,一直到目前的英特尔至强可扩展系列,将该系列分为白金Platinum”, “金牌Gold”, “银牌Silver”和“铜牌Bronze”四个级别,四个金属级别,自然分为四个定位:铂金定位高端,主要是8xxx系列,针对8路平台;黄金包括5xxx和6xxx系列,针对高端4路平台打造;银牌主要是4xxx系列,针对双路平台;铜牌主要是3xxx系列,针对单路平台,主打入门级。
了解了CPU的这些特性和定位后,我们就可以结合业务需求进行选择,我们在这里提供一些常见情况下的建议:
1、如果公司业务刚起步,量不大的情况下,此时预算可能也不是很充足,那么建议选择一个英特尔至强铜牌单路CPU即可,但是记得要留扩展接口,以后可以根据业务发展情况,随时升级到更高配置的服务器。
2、如果你购买的服务器需要跑多个服务,比如apache+php+tomcat+mysql架构,都运行在一台机器上,那么,推荐英特尔至强银牌双路CPU,这将是一个不错的选择。
3、如果你的服务器专门用来运行MySQL或者Oracle服务,并且数据库并发连接多达几百个,未来还会不断增长,那么至少应该选择一个英特尔至强金牌双路10核CPU,并且预留CPU扩展接口,当负载越来越大的时候,可以选择增加CPU到四路。
六、需要多大的内存?
在内存的选型上,我们需要考虑服务器运行什么应用?以及 “需要支持多少用户访问?”这两个问题,相比于CPU,内存(RAM)其实是影响性能的最关键因素,因为在实际的调优案例和经验上,我们发现,很多业务系统CPU利用率一般都在10%~50%之间,甚至更低。但由于内存不够而导致服务器运行缓慢的案例比比皆是,内存使用的大小取决于业务系统的用户量,访问量,或者叫繁忙程度,当然也和应用软件对内存的最低需求和内存管理机制有关系,我们同样在下面给出了一些常见应用环境下的内存配置建议:
1、如果运行的是Web前端服务器,例如apache、nginx,那么不需要太大的内存,因为这些web服务器主要是处理静态请求,一天几十万的访问量,4GB内存已经足够了,如果访问量再大些到几百万,那么16GB内存已经完全满足需求了。如果有更大的访问量的时候,此时最好的调优策略不是加内存,而是采用负载均衡架构,采用同等配置的硬件服务器即可成倍增加负载承受能力。
2、如果运行的是Tomcat、Resin、WebLogic、Websphere、jboss等此类java重型应用服务器,那么配置的内存在16GB-32GB之间即可,大于32GB的内存配置基本是浪费了。因为JVM真正能调动和使用的内存不会超过32GB。
3、如果运行的是基于内存型的业务系统,例如redis、Squid、Varnish、Memcached等应用时,我们需要为服务器配置尽可能高的内存容量,因为这类应用主要消耗的就是内存,比如redis服务器,如果配置了32GB的物理内存,那么redis真正能使用的也就是16GB,这个原因是由redis内部机制决定的。
七、需要怎样的硬盘存储?
硬盘存储系统的选择和配置是整个服务器系统里最为复杂的一部分,我们需要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否需要Raid卡,Raid卡的型号和Raid级别等问题。
磁盘类型目前有SATA、SAS和SSD三种类型,SATA、SAS属于机械硬盘,转速低,读写速度慢,但是价格便宜,磁盘容量大,目前最大的单个SATA、SAS盘容量有超过10TB的。SSD硬盘属于固态硬盘,优点是读写速度快,缺点是价格昂贵。
硬盘类型如何选择,这个要根据业务需求,费用预算等方面综合考虑。
Raid卡是购买服务器必须的一个硬件设备,根据使用需求,可选择支持主流Raid级别的RAID卡。
那么什么是RAID技术呢,简单介绍下,RAID即独立磁盘冗余阵列,它是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
RAID 主要分为软RAID、硬RAID二种。软RAID所有功能均有操作系统和CPU来完成,没有独立的RAID控制器处理芯片和I/O处理芯片,效率自然最低。硬RAID配备了专门的RAID控制器处理芯片和I/O处理芯片以及阵列缓冲,不占用CPU资源,刚才说的raid卡就属于硬RAID。
RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity ) ,根据运用或组合运用这三种技术的策略和架构,可以把RAID分为不同的等级,以满足不同数据应用的需求。业界公认的标准是 RAID0 ~ RAID5。实际应用领域中使用最多的 RAID 等级是 RAID0 、 RAID1 、RAID5 、RAID10。
RAID每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的 RAID等级,以及具体的实现方式。
下面主要介绍下常见的 RAID0 、 RAID1 、RAID5、RAID 10/01级别的实现方式以及优缺点。
1、RAID 0级别
Raid0称为条带模式,即把连续的数据分散到多个磁盘上存取。当系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。因为读取和写入是在设备上并行完成的,读取和写入性能将会增加,这通常是运行RAID0的主要原因。但RAID 0没有数据冗余,如果驱动器出现故障,那么将无法恢复任何数据。
2、RAID 1级别
RAID 1又称为镜像(Mirroring),一个具有全冗余的模式。
RAID 1可以用于两个或2xN个磁盘,并使用0块或更多的备用磁盘,每次写数据时会同时写入镜像盘。这种阵列可靠性很高,但其有效容量减小到总容量的一半,同时 这些磁盘的大小应该相等,否则总容量只具有最小磁盘的大小。
RAID 1的数据安全性在所有的RAID级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。
3、RAID 5级别
RAID 5特点有:最少3块磁盘、数据条带形式分布、以奇偶校验作冗余、适合多读少写的情景。
可见,Raid5是性能与数据冗余最佳的折中方案。
4、RAID 10/01级别
RAID 10(又叫RAID 1+0)特点如下:
最少需要4块磁盘
先按RAID1分成两组,再分别对两组按RAID 0方式条带化 (先做镜象,然后再做条带)
兼顾冗余(提供镜像存储)和性能(数据条带形分布)
在实际应用中较为常用
RAID 01(又叫RAID 0+1)特点如下:
最少需要4块磁盘
先按RAID 0分成两组,再分别对两组按RAID 1方式镜像(先做条带,然后再做镜象)
兼顾冗余(提供镜像存储)和性能(数据条带形分布)
八、网卡如何选择?
最后,再来谈一下网卡的选型,网卡和服务器的网络带宽互相影响,这里我们从网卡的速率和网卡的冗余两个方面来进行分析。
首先是网卡的速率问题,到底是选用千兆网卡呢,还是选择万兆网卡呢,这主要取决于我们对带宽流量的评估。大多数情况下,千兆网卡足够用来对外网提供服务,而内部数据交换如果非常频繁,例如hadoop业务,建议使用万兆网卡。而万兆网卡一般使用的是光口光纤卡。
然后是网卡的稳定性问题,如果你的业务系统对网络稳定性要求很高,那么推荐双网卡做冗余,两个网卡连接到不同的交换机上,这样,任意一个网卡故障都不影响业务的正常运行。
最后,如果有条件的话,还建议在服务器上配置一个远程管理卡,远程管理卡是安装在服务器上的硬件设备,提供一个以太网接口,使它可以连接到局域网内,提供远程访问。这种远程管理基于BMC(底板管理控制器),由集成在管理卡上的系统微处理器负责监测和管理操作系统之外的服务器环境和状态。它既不会占用服务器系统的资源,也不会影响服务器系统的运行。
通过远程管理卡我们可以进行机器开机、关机、重启、配置引导方式、安装系统等操作。还可以监控电池、风扇、CPU、内存、磁盘等硬件设备的状态。
================================================================
更多Linux、云计算、云原生、大数据、docker、k8s知识,可访问:奇智云课堂
相关文章:
性能调优第一步:服务器硬件如何选型
硬件选型是调优的第一步,无论你是自行购买服务器进行托管,还是租用服务器,或者购买云主机,都要面临的一个问题,那就是选择服务器的硬件配置,因为没有一台服务器能满足所有需求,解决所有的问题。…...

Codewhisperer 使用评价
最近亚⻢逊推出了一款基于机器学习的 AI 编程助手 Amazon CodeWhisperer,可以实时提供代码建议。在编写代码时,它会自动根据现有的代码和注释给出建议。Amazon CodeWhisperer 与GitHub Copilot类似,主要的功能有: 代码补全注释和文档补全代码…...

结合scss实现黑白主题切换
是看了袁老师的视频后,自己做了一下练习。原视频地址: b站地址https://www.bilibili.com/video/BV15z4y1N7jB/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_sourcec6cf63302f28d94ebc02cbedcecc57ea首先创建一个全局的scs…...
go-zero对数据库的操作
一、go-zerro中结合gorm来操作mysql数据库 1、这里我这就直接结合gorm-gen的方式来实现数据库操作,关于gorm-gen可以参考官网 2、创建一个数据库,并且创建一个表 -- ------------------------ -- 用户表 -- ------------------------ DROP TABLE IF EXISTS user; C…...

Mac git查看分支以及切换分支
查看本地分支 git branch 查看远程仓库分支 git branch -r 查看本地与远程仓库分支 git branch -a 切换分支 git checkout origin/dev/js...
Qt调起Mac“系统设置”面板
mac系统设置相关字段: Accessibility 面板相关 项目 URL Scheme Main x-apple.systempreferences:com.apple.preference.universalaccess Display x-apple.systempreferences:com.apple.preference.universalaccess?Seeing_Display Zoom x-apple.systempreference…...
小程序如何刷新当前页面
小程序可以通过调用wx.pageScrollTo()方法来实现刷新当前页面,该方法可以滚动页面并使页面滚动到顶部,从而达到刷新页面的效果。具体的操作步骤如下: 在需要刷新的页面中添加一个按钮或其他触发事件的元素。 绑定相应的点击事件,…...

OSI参考模型
目录 一. OSI参考模型的各层功能二. 网络排错三. 网络安全四. 实体、协议、服务和服务访问点SAP五. TCP IP体系结构 一. OSI参考模型的各层功能 \quad \quad \quad \quad 我们首先来看应用层实现的功能 每个字段的各种取值所代表的意思 \quad \quad 比如要保存的文件内容是ab…...

(c语言进阶)内存函数
一.memcpy(void* dest,void* src,int num) ,操作单位为字节,完成复制且粘贴字符串 1.应用 #include <stdio.h> #include<string.h> int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[20] { 0 };memcpy(arr2, arr1, 20);//从…...

【2023春李宏毅机器学习】快速了解机器学习基本原理
文章目录 机器学习约等于机器自动找一个函数 机器学习分类 regression:输出为连续值classification:输出为一个类别structured learning:又叫生成式学习generative learning 生成有结构的物件(如:影像、句子…...
人工智能:科技的魔术师
引言: 人工智能(Artificial Intelligence,简称AI)作为一项前沿技术,正以惊人的速度改变着我们的生活。它像魔术师一样,能够解决我们的问题、提供建议,甚至预测未来。从智能手机到智能家居&…...

三菱FX3U小项目—运料小车自动化
目录 一、项目描述 二、IO口分配 三、项目流程图 四、项目程序 五、总结 一、项目描述 设备如下图所示,其中启动按钮SB1用来开启运料小车,停止按钮SB2用来手动停止运料小车(其工作方式任务模式要求)。当小车在原点SQ1位置,按下启动按钮S…...

智慧城市大脑数据中台解决方案:PPT全套37页,附下载
关键词:智慧城市大脑解决方案,数据中台解决方案,智慧城市建设,数据中台建设,智慧城市大脑建设,数据中台建设架构 一、智慧城市大脑数据中台建设背景 智慧城市大脑数据中台是一个面向城市级数据管理、开发和…...

vs code git问题:文件明明已加入忽略文件中,还是出现
vs code git问题:文件明明已加入忽略文件中,还是出现 原因: 因为之前这些文件都已经提交过,线上GIT已经存在,已存在就不能忽略, 解决办法: 先要删除这些文件提交上去,然后把这些文…...

打不开github网页解决方法
问题: 1、composer更新包总是失败 2、github打不开,访问不了 解决方法:下载一个Watt Toolkit工具,勾选上,一键加速就可以打开了。 下载步骤: 1、打开网址: Watt Toolkit 2、点击【下载wind…...

【预处理详解】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1. 预定义符号 2. #define定义常量 3. #define定义宏 4. 带有副作用的宏参数 5. 宏替换的规则 6. 宏函数的对比 7. #和## 7.1 #运算符 7.2 ## 运算符 8. 命名约定 …...

BetterDisplay Pro v2.0.11(显示器颜色校准软件)
BetterDisplay Pro是一款为Mac电脑设计的屏幕亮度调节软件,旨在提高显示器的色彩和亮度表现。它可以根据用户的需求和显示器的特性,自动调整显示器的亮度、色温、对比度等参数,以获得更加真实、舒适的视觉效果。 这款软件拥有智能调节功能&a…...

APP外包开发需要注意的问题
在进行APP外包开发时,有一些关键问题需要注意,以确保项目的顺利进行和最终交付满足预期的应用。以下是一些在APP外包开发中需要关注的问题,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎…...

Wireshark TS | 应用传输缓慢问题
问题背景 沿用之前文章的开头说明,应用传输慢是一种比较常见的问题,慢在哪,为什么慢,有时候光从网络数据包分析方面很难回答的一清二楚,毕竟不同的技术方向专业性太强,全栈大佬只能仰望,而我们…...
邦芒支招:求职自荐的五条技巧
求职自荐的技巧有哪些,在职场中,求职是很讲究技巧的,因为每个人都想自己的在面试的时候能取得好的结果,那么求职自荐的技巧有哪些呢?下面就跟小邦一起来了解一下吧。 第一、要积极主动。求职自荐是求职者的…...

网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

c#开发AI模型对话
AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...