第二章 计算机系统基础知识
第二章 计算机系统基础知识2.1计算机系统概述 计算机系统是指用于数据管理的计算机硬件、软件及网络组成的系统 计算机系统 硬件 中央处理器 存储器 输入设备 输出设备 软件 系统软件 应用软件 2.2 计算机硬件2.2.1 计算机硬件组成 冯·诺依曼结构计算机 运算器 控制器 存储器 输入设备 输出设备 现实条件下的计算机硬件的构成 处理器(控制单元和运算单元为一体) 存储器 总线 (输入输出设备集成为一体,按传输过程划分为总线、接口和外部设备) 接口 外部设备 2.2.2处理器 处理器作为计算机系统运行算和控制的核心部件,位宽由4位处理器发展到64位处理器 处理器再能力构成上从仅具有运算和控制功能发展到集成多级缓存、多种通信总线和接口 处理器在内核上从单核处理器发展为多核、异构多核和众核处理器 主要分复杂指令集(CISC)和精简指令集(RISC)(主要,如下图2-3) 2.2.3...
第一章 系统架构绪论
第一章 系统架构绪论1.1系统架构概述 冯·诺依曼结构计算机组成 运算器,控制器,存储器,输入设备,输出设备五个组成 新影响 系统的安全性,可靠性,可维护性,可移植性,安全性,可扩展性,可用性 系统架构师 就是项目的总设计师,既要掌握整体又要洞悉局部瓶颈,能根据具体的业务场景给出解决方案的总体设计人员,要确认和评估系统需求,给出开发规范,搭建系统实现的核心架构,澄清技术细节,扫清主要的技术难点,要掌握技术团队的能力需要,给出项目管理方法,采用合适生命周模型,具备以自身为核心形成团队的能力,并在项目进度计划和经费分配等方面开展评估,以防项目风险 1.1.1 系统架构的定义 定义 1.架构 是体现在组件中的一个系统的基本组织,它们彼此的关系与环境的关系指导它的设计和发展的原则。 2.系统是组织起来完成某一特定功能或一组功能的组件集 3.环境或者上下文决定了堆这个系统的开发、运作、政策以及会对系统造成其他影响的环境和设置 4.任务是由一个或者多个利益相关者通过系统达到一些目标的系统的一个用途或者操作 系统架构作用: 1.解决相对复杂的需求分析问题 ...
开启你的“双系统”新纪元:WSL2 安装全攻略
1.前提概述 故事的开始:你是否曾为在 Windows 上运行 Linux 工具而苦恼?要么安装笨重的虚拟机,要么折腾双系统,重启电脑…… 但现在,微软为你带来了“魔法”——WSL2(Windows Subsystem for Linux 第二代)。它让你在 Windows 中,秒级启动原生 Linux 环境,无需重启,无需虚拟机! 跟我来,一步步解锁这扇通往 Linux 世界的“任意门”。 2.为“魔法”铺路(需要重启系统)在施展 WSL2 的魔法之前,我们需要先“唤醒” Windows 中两个沉睡的超能力: 适用于 Linux 的 Windows 子系统:这是让你能在 Windows 中运行 Linux 命令的“翻译官”。 虚拟机平台:这是让 WSL2 获得接近原生 Linux 性能的“加速器”。 ✅ 方案一:用 PowerShell 激活(适合喜欢敲命令的你) 右键点击“开始”菜单 → 选择 “Windows PowerShell(管理员)”...
k8s中解决单个节点cpu占用过高
一、前提场景在 Kubernetes(K8s)集群中,单个节点 CPU 占用过高是一个常见但影响较大的问题,往往会导致节点资源耗尽、Pod 调度失败、服务响应延迟甚至节点不可用。该问题的根本原因通常在于服务部署缺乏合理的资源规划,导致多个高负载应用集中部署在同一节点上,从而造成资源竞争和瓶颈。 二、问题成因分析 服务部署不均衡 应用在部署时未指定资源请求(requests)和限制(limits),Kubernetes 调度器无法准确评估节点的可用资源,从而可能导致多个高负载 Pod 被调度到同一个节点上。 缺乏资源预留机制 若未在 Deployment 或 Pod 模板中显式声明 CPU 和内存的 requests,Kubernetes 默认将其视为“BestEffort”类型,这类 Pod 在资源紧张时优先被驱逐,且调度时不会考虑节点实际负载,极易造成资源热点。 监控与调优缺失 未结合监控系统(如 Prometheus + Grafana)对应用实际资源消耗进行长期观察,导致资源配置脱离实际需求,要么资源浪费,要么资源不足。 三、解决思路与最佳实践1....
从minio迁移数据到rustfs
前提MinIO 官方近年来逐步限制开源版本功能,推动用户转向商业版, 时间 事件 2021年 服务器代码从 Apache 2.0 切换为 AGPL v3.0 2024年10月 移除 Kubernetes Operator 中的 Web 控制台 2025年5月 彻底删除开源版的 WebUI(用户无法通过浏览器管理) 种种做法导致它缺失自主可控性、让人感到不安全不可信,所以寻求了开源的代替品rustfs,通过支持S3的存储特性去使用rclone工具进行迁移。 一、rustfs 介绍RustFS 是一个使用 Rust(全球最受欢迎的编程语言之一)构建的高性能分布式对象存储软件。与 MinIO 一样,它具有简单性、S3 兼容性、开源特性以及对数据湖、AI 和大数据的支持等一系列优势。此外,与其他存储系统相比,它采用 Apache 许可证构建,拥有更好、更用户友好的开源许可证。由于以 Rust 为基础,RustFS 为高性能对象存储提供了更快的速度和更安全的分布式功能。 官方docker...
alist迁移到openlist
1.迁移的原因Alist原本是一个非常受欢迎的开源项目,它允许用户聚合多个云存储服务到一个统一的界面中进行管理。然而,当Alist被出售给一家有争议的公司后,原开发者未能充分告知社区成员这一变动,并且没有明确说明商业化版本与开源版本之间的区别,这严重违背了开源社区的核心价值观——信任和透明。作为回应,部分原Alist贡献者决定创建一个全新的分支项目——OpenList,以继续遵循开源原则 openlist docker部署官网地址 1https://doc.openlist.team/guide/installation/docker 2.备份alist数据到openlist备份/xxx/alist/data的所有数据比如我的是/var/alist/data 创建openlist映射目录 1mkdir -p /var/openlist 复制 1cp -rp /var/alist/data /var/openlist/ 3.docker部署openlist使用当前用户运行和管理 OpenList...
rancher的部署
一、rancher是什么Rancher 是一个开源的容器管理平台,旨在简化 Kubernetes(K8s)集群的部署、管理和运维。它由 Rancher Labs 开发,现为 SUSE 的一部分。Rancher 提供了一个统一的用户界面和 API,使 DevOps 团队和平台工程师能够跨多个环境(本地、云、混合)轻松管理多个 Kubernetes 集群。官网地址:https://www.rancher.cn/ 注意:本文基于rancher:v2.11.2版本介绍的,理论上通用其他版本 二、环境准备(所有节点)1. 基础系统要求 操作系统:CentOS 7/8、Ubuntu 20.04+(推荐 CentOS 7.9) 内存 ≥ 4GB,CPU ≥ 2核 节点间网络互通,关闭防火墙或开放必要端口(6443、2379-2380、10250 等) 2.安装 Docker(所有节点)123456# 使用阿里云 yum 源安装 Docker CEyum install -y yum-utilsyum-config-manager --add-repo...
frp内网穿透
一、FRP 是什么? 项目地址:https://github.com/fatedier/frp 核心功能: 支持 TCP、UDP、HTTP、HTTPS、WebSocket 等协议 反向代理 + 隧道通信 跨平台(Linux / Windows / macOS / ARM) 配置灵活,支持 TOML / YAML / JSON 二、FRP 能帮助我们做什么?在我看来,可以方便我们实现便宜映射家里的或者内网中的服务到外网使用。 通过买阿里云或者腾讯云的99元的云主机+FRP内网穿透+家里的mini主机/NAS 实现低成本的服务开放,比如我的博客网站, 我的wailne评论服务,我的minio图床存储等等服务都是在mini主机上部署,然后通过frp内网穿透后映射使用的。 我的组网方案 graph LR; F[1.frp访问流程图]; A[用户访问] -->B[云主机]; B -->C[frp]; C -->E[家里的mini主机]; 三、...
acme.sh实现ssl证书自动化续期
简介acme.sh 是一个用 Shell 脚本编写的轻量级、功能强大的 ACME 客户端,用于从 Let’s Encrypt 或其他兼容 ACME 协议的证书颁发机构(CA)自动申请和续期免费的 TLS/SSL 证书。 本文根据本站的配置进行的实践过程 1.安装acme.sh1.1 安装 acme.sh 并设置邮箱用来接受重要通知,如证书快过期未更新通知1curl https://get.acme.sh | sh -s email=xxx@qq.com 1.2 可能出现问题A)问题: 1curl: (7) Failed to connect to raw.githubusercontent.com port 443 after 0 ms: Couldn't connect to server 处理方案:源码下载运行 123git clone https://gitee.com/neilpang/acme.sh.gitcd acme.sh./acme.sh --install -m my@example.com B)问题:可能出现报错command not...
waline评论系统部署及迁移到mysql
1.开源评论系统一款简洁、安全的评论系统官网地址 2.本次部署方式 采用docker部署,sqllite数据库(完全自主控制) 其他部署方式请参考官网 SQLite 使用 SQLite 时需要下载 waline.sqlite 文件至合适的位置。之后在项目中配置如下环境变量。 环境变量名称 必填 默认值 备注 SQLITE_PATH ✅ SQLite 数据库文件的路径,该路径不包含文件名本身 JWT_TOKEN ✅ 用户登录密钥,随机字符串即可 SQLITE_DB waline SQLite 数据库文件名,若文件名变化需要修改该字段值 SQLITE_PREFIX wl_ SQLite 数据表的表前缀 3.部署登录linux服务器 3.1 创建目录,1mkdir -p /var/waline/data 3.2 移动到目录下1cd /var/waline/data 3.3 下载waline.sqlite文件1wget...
