自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(137)
  • 收藏
  • 关注

原创 腾讯Java岗实习一面——线程和进程之间资源共享情况,docker进程隔离是怎么实现的

进程(Process):操作系统资源分配的最小单位。线程(Thread):CPU 调度的最小单位,是进程内的执行单元。同一进程下的多个线程:共享内存和文件资源,但每个线程都有自己的栈和执行流。而不同进程之间,默认是完全隔离的,除非使用进程间通信(IPC)机制。Docker 的进程隔离是通过Linux 的 Namespaces 实现“看不见彼此”,通过 Cgroups 实现“抢不到资源”,再配合文件系统隔离和安全机制,构建了一个像“轻量级虚拟机”的容器环境。

2025-04-07 16:05:09 667

原创 linux如何查看当前系统的资源占用情况

使用free和top查看内存和 CPU 使用情况。使用df和iostat查看磁盘的使用情况。使用ps查看进程占用情况。使用netstat查看网络连接情况。使用vmstat查看系统的整体状态。你可以根据具体需求选择使用上述命令来查看系统的资源占用情况。如果有任何其他问题,随时告诉我!

2025-04-06 16:47:28 424

原创 LeetCode刷题常见的Java排序

你所提供的字符串排序技巧实际上是一种自定义排序规则的实现。在不同的数据类型中,类似的技巧可以用来进行排序,特别是当排序需求复杂或者涉及多个条件时,使用 Comparator或 Comparable接口来控制排序行为非常重要。字符串排序:按字母表排序(忽略大小写)。数字排序:整数、浮动类型按升序或降序排序。对象排序:可以按多个字段、多个条件进行排序。稳定排序:确保排序后相等元素的顺序保持不变。自定义排序:例如按特定位置的字符或元素进行排序。

2025-04-05 22:34:44 450

原创 记录解决K3s的Pod之间通信问题

使用 K3s 的 Pod CIDR,而不是。作为 Pod CIDR,这导致。,那就说明你的 K3s 默认使用。,但你的 K3s 可能使用了。应该就能正确运行了。作为 Pod 网络,而。配置的 CIDR 是。

2025-03-21 09:35:35 293

原创 pdsh配置

如果这样可以执行,说明主机名解析有问题,可以手动修改。如果不需要输入密码,说明免密登录配置成功。,说明免密登录未配置,继续下一步。可用,再尝试分布式训练。然后保存并退出,重新。如果所有服务器都返回。

2025-03-19 10:38:23 245

原创 deepSpeed多机多卡训练服务器之间,和服务器内两个GPU是怎么通信

DeepSpeed 在多机多卡训练时,主要依赖NCCL和PyTorch Distributed进行通信。

2025-03-19 08:54:29 725

原创 DeepSpeed多机多卡微调笔记

你现在的目标是在三台服务器上使用 DeepSpeed 进行多机多卡的 BERT 微调。你已经有了模型和数据,接下来的步骤包括配置 DeepSpeed 环境、设置分布式训练、启动多机训练任务。这样,你就可以在三台服务器上顺利进行 BERT 多机多卡微调了!进行多机多卡训练,需要所有服务器之间能够无密码 SSH 登录。如果 NCCL 通信正常,就可以继续。DeepSpeed 训练时,可以使用。进行测试,确保可以无密码登录。如果你的模型比较大,可以尝试。进行多机通信,建议安装。如果被占用,换一个端口。

2025-03-19 08:46:46 417

原创 如何优化 TCP/IP 的 NCCL 通信

数据传输几乎不占用 CPU,而 TCP/IP 需要 CPU 处理网络协议栈,造成额外的开销。如果你打算长时间运行分布式训练,建议考虑上。,能大幅提高 NCCL 通信效率。InfiniBand 使用。

2025-03-17 10:28:44 803

原创 刷字符串的题使用正则表达式事半功倍?以及还有哪些必须掌握的java正则匹配

程序中的正则表达式"^0+(?!$)"用于去除字符串s开头的零。0+0!$)"0"所以,的作用是将输入字符串开头的零去掉,但如果整个字符串只由零组成(如"000"),它会保留零。

2025-02-17 12:04:22 307

原创 在 WSL上的 Ubuntu 中通过 Docker 来运行 Redis,并在微服务项目中使用redis

通过在 WSL(Windows Subsystem for Linux)上的 Ubuntu 虚拟机中通过 Docker 来运行 Redis,然后再微服务项目中使用redis以下是步骤:首先,确保你已经在 WSL 的 Ubuntu 中安装了 Docker。如果没有安装,可以按照以下步骤操作:然后启动并确保 Docker 自动开机启动:如果你遇到权限问题,可以将当前用户加入 Docker 组:然后退出当前会话,重新登录,或者使用 来立即生效。确保 Docker 已经正确安装并启动后,你可以通过以下命令来

2025-02-16 21:47:54 552

原创 nacos学习笔记

Nacos 是一个功能丰富、易于使用的服务发现和配置管理平台,特别适用于微服务架构和云原生环境。它不仅支持服务注册与发现,还提供强大的配置管理和服务治理能力,帮助开发者更加高效地管理分布式应用。如果你有其他特定的使用场景或技术问题,欢迎继续提问!

2025-02-16 11:15:28 756

原创 Hami项目开发笔记

Hami提供了两个维度的监控能力,集群级别和节点级别,以及Pod真实占用的GPU和虚拟分配的GPU。

2025-02-15 13:29:49 194

原创 在SpringBoot项目中有k8s配置,但报错

如下报错一般是你没有将k8s的config拷贝到项目里,你可以将k8s主节点的config拷贝一下到项目中。

2025-02-13 09:37:47 438

原创 详细介绍docker的network

网络模式适用场景Bridge默认网络,适用于大多数 Docker 应用Host高性能网络应用,容器与宿主机共享网络None完全隔离,不需要网络的场景Container共享另一个容器的网络,Sidecar 模式Macvlan需要直接连接物理网络,如 IoT、嵌入式设备Docker 提供了强大的网络功能,适用于各种不同的业务场景。在生产环境中,结合或Kubernetes,可以构建更加复杂的网络拓扑,提升容器间的通信能力和安全性。

2025-02-07 11:16:20 1141

原创 前后端通过docker部署笔记

相关的设置,适用于启用了 SELinux(如 CentOS、RHEL)的环境。如果你有更具体的问题,欢迎继续讨论!下面详细解析各个参数的作用,以及。镜像,并通过数据卷 (,避免不必要的权限修改。

2025-02-06 11:34:54 744

原创 Docker 挂载数据卷的好处与必要性

Docker 容器的存储默认是临时的,容器被删除后,内部的数据也会随之丢失。因此,在生产环境和开发过程中,这样 MySQL 直接操作宿主机文件系统,提高 IO 性能。这样 Nginx 可以读取配置文件,但无法修改,提高安全性。下面从多个方面详细分析挂载数据卷的。,只有在特殊场景(如访问特定宿主机目录)时,才使用。仍然存在,新的 MySQL 容器可以重新使用它。因此,在实际开发和生产环境中,合理使用。是非常必要的,能够极大提高系统的。目录下的数据,实现数据共享。

2025-02-06 11:12:57 907

原创 Docker 数据卷(Volume)详细介绍

由于容器的存储是临时的,容器删除后其中的数据会丢失,因此使用数据卷可以保证数据不会随着容器的销毁而丢失。:Bind Mount 依赖于宿主机的路径,可能会导致跨平台兼容性问题。这个命令会删除所有没有被任何容器使用的 Docker 数据卷。的关键工具,合理使用可以大大提高数据管理的灵活性和安全性。注意:如果某个容器正在使用该数据卷,删除会失败。删除所有未被任何容器使用的 Docker 数据卷。的数据卷,并由 Docker 管理。列出当前所有的 Docker 数据卷。目录下的内容,但不能修改。

2025-02-06 11:12:09 1310

原创 安装hami的笔记

我们的k3s的版本会有个 +k3s2s在版本后面,2.4.x chart没有考虑这个,直接读出来拼接了做了image name,但是+号不允许在image name里面,就报了 InvalidImageName错,这是装2.4.x的schedduler出现异常的原因。无法解析图像名称\“ consistry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.31.2+k3s1 \”服务器版本:V1.31.2+K3S1。

2025-02-03 19:22:58 518

原创 docker推送本地仓库报错

确保目标服务器上的 Docker Registry 服务正常运行。检查防火墙设置,确保 5000 端口可访问。确认目标机器上的 Docker 服务正常运行。测试 Docker Registry 服务的可用性(使用curl或其他工具)。确保推送命令格式正确并且镜像标签已经设置正确。通过这些步骤,你应该能够解决的问题。

2025-01-09 20:12:48 609

原创 统计项目代码行数的实用工具cloc,简单易上手

macOS:推荐使用 Homebrew 安装。Ubuntu:推荐使用apt安装。Node.js 环境:如果你已经使用npm管理 Node.js 包,也可以通过安装。在任何操作系统上,安装完成后,运行cloc就能统计你代码的行数了。

2025-01-09 19:31:32 723

原创 Prometheus学习笔记

Prometheus 是一个独立的服务,不依赖于其他外部存储系统,且支持水平扩展,能够在大规模分布式系统中使用。Prometheus 提供了强大的查询语言 PromQL,用于查询、聚合和筛选时间序列数据。(例如,实例、区域、环境等)对时间序列进行多维度分组,允许你对不同维度的数据进行灵活查询。机制从暴露指标的应用程序、服务、数据库等抓取数据。掌握这些核心概念后,你将能够有效地使用 Prometheus 进行高效的监控和报警配置。:抓取的数据以时间序列的形式存储在 Prometheus 的本地时序数据库中。

2024-12-30 14:47:55 916

原创 go并发模型的详细介绍

Go 的并发模型是基于goroutines和channels构建的,具备高效、简单、易用的特点。通过 goroutine,Go 可以轻松实现并发执行,而通过 channel,它可以安全地在 goroutines 之间传递数据和进行同步。Go 的并发编程模型大大简化了并发程序的开发,减少了传统并发编程中常见的错误和复杂性,使得开发者可以集中精力解决实际业务问题。

2024-12-23 22:30:24 914

原创 云原生相关的 Go 语言工程师技术路线(含博客网址导航)

要成为云原生相关的 Go 语言工程师,需要深刻理解 Go 语言本身,并掌握容器化、Kubernetes、微服务架构、API 设计、CI/CD、监控与日志等云原生技术。此外,积极参与开源项目、学习云平台的具体工具和服务,能够帮助你不断提升技术水平并紧跟行业趋势。

2024-12-23 22:19:27 1195

原创 go基本知识与语法入门

Go 语言的设计目标是简洁、并发和高效,它提供了很多优秀的特性,如垃圾回收、内存安全、强类型系统、并发支持等。它适用于从系统编程到网络服务等各种应用领域。通过简洁的语法和工具,Go 能帮助开发者更容易地编写可靠的高性能应用。

2024-12-22 13:32:34 497

原创 REST模式是什么,以及其他架构风格

REST(Representational State Transfer)是一种架构风格,用于设计网络上的分布式系统,特别是Web API。它定义了一组约束和原则,用于提高API的可扩展性和简洁性,广泛用于Web服务开发。REST模式是一种轻量级、简洁且易于扩展的架构风格,广泛用于Web API开发。它通过使用标准的HTTP协议和方法,使得不同的客户端能够通过网络访问和操作资源,促进了不同系统之间的互操作性。虽然REST已经成为现代Web应用和API开发的标准之一,但它并不是唯一的选择。

2024-12-19 11:16:12 1106

原创 linux/ubuntu安装Prometheus&Grafana

通过以上步骤,你可以在 Linux 上成功安装并配置 Prometheus 和 Grafana。Prometheus 用于收集和存储度量数据,而 Grafana 则用于将这些数据可视化。两者结合使用能帮助你更好地监控和管理你的系统和应用性能。

2024-12-16 10:54:13 949

原创 RBAC学习笔记

RBAC(Role-Based Access Control,基于角色的访问控制)是一种常用的权限管理模型,它根据用户的角色来分配和管理访问权限。RBAC 的基本思想是通过定义角色、权限和用户之间的关系,实现对资源的控制。

2024-12-13 10:46:36 884

原创 docker及docker exec命令学习笔记

使用 docker exec 修改的内容(如文件)仅在容器运行时有效。docker exec 是一个常用的 Docker 命令,允许你在已经运行的容器中执行命令或启动新的进程。docker exec 是一个功能强大的工具,特别适合在开发、调试或临时维护容器时使用。有时,默认用户可能没有权限执行某些操作,可以通过 -u root 指定使用 root 用户。指定目标容器的名字或容器 ID。• /bin/bash:进入容器的 bash shell。要在容器中执行的命令。• ls:列出容器内的文件。

2024-12-04 16:14:24 741

原创 如何将文件拷贝到docker容器中

要将文件拷贝到 Docker 容器中,可以使用 docker cp 命令。以下是操作步骤:假设条件操作步骤这会将文件拷贝到 Jenkins 容器内的 /tmp/ 目录下。此命令将你带入容器的交互式 shell。移动完成后可以配置环境变量。

2024-12-04 15:32:47 597

原创 我的创作纪念日

与此同时,我发现技术交流的魅力,通过写作不仅能梳理自己的思路,还能帮助更多人。在职业规划上,我希望积累更多分布式系统经验,成长为一名有影响力的架构师,为技术社区贡献更大的价值。我选择把创作作为一种放松的方式,在繁忙的学习之余,通过分享技术心得来调整心态,同时也能进一步巩固知识。总结:写作的过程让我受益匪浅,它不仅是一种自我表达,更是一种自我成长的方式。2. 文章得到了不少关注,阅读量和评论让我意识到我的分享对别人是有价值的。3. 最重要的是,通过与读者的互动,我的技术思维和表达能力都有了显著提升。

2024-12-04 15:27:40 268

原创 Nvidia的hami是什么,以及如何再K8S中起作用

NVIDIA的HAMI是一款基于人工智能的系统优化工具,主要用于帮助开发者高效地管理和优化GPU资源,提升机器学习和深度学习训练的性能。它是NVIDIA推出的一系列软件工具和平台的一部分,旨在简化AI应用的开发、部署和调优过程。NVIDIA Hami是一个智能化的系统优化工具,专为AI和深度学习应用的开发者设计,能够优化GPU资源的使用、提供实时性能监控、并通过自动化调优提升训练效率。它与NVIDIA的其他硬件和软件工具深度集成,帮助开发者提升训练和推理的速度和准确性,减少开发和部署过程中的瓶颈。

2024-11-27 10:38:15 2027

原创 深度学习必会基本知识

卷积层:用于从输入数据中提取局部特征,尤其适用于处理图像、视频等数据,能够有效减少参数量和计算量。全连接层:用于聚合特征并进行决策,通常位于神经网络的末端,用于最终的分类或回归任务,参数量较大,计算复杂度高。在实际的深度学习任务中,卷积层和全连接层通常结合使用。卷积层用于特征提取,而全连接层用于将提取到的特征映射到目标空间(如分类标签)。

2024-11-27 10:34:22 1025

原创 生成器模式和工厂模式的优缺点比较

生成器模式(Builder Pattern)和工厂模式(Factory Pattern)都是常用的设计模式,主要用于对象的创建,但它们有不同的应用场景和特点。在选择使用哪种模式时,理解它们各自的优缺点至关重要。

2024-11-19 10:00:40 619

原创 什么是代码重构,以及在什么场景下应该怎么重构

代码重构(Code Refactoring)是指在不改变软件外部行为的前提下,对代码进行优化和调整,以提升代码的可读性、可维护性和可扩展性,同时减少代码中的冗余和潜在的错误。重构的目的提高代码可读性通过改善命名、减少复杂度等,让代码更易于理解和维护。增强可维护性使代码更容易修复问题和添加新功能。减少技术债务优化原有设计中的不良模式和冗余实现。提升性能或效率(有时)一些重构操作可能优化性能,例如消除不必要的操作或资源开销。常见的代码重构方法重命名修改变量、类、方法等的名称,使其更有意义。

2024-11-18 23:38:41 1326

原创 分布式系统学习笔记

除了分布式爬虫系统,还有许多分布式系统值得学习和实践,它们在不同领域有广泛应用,积累相关经验对找工作非常有帮助。

2024-11-17 20:12:43 916

原创 设计模式已经过时了?再也不用学了?

设计模式不仅是高级软件工程师的技能基础,还能大幅提升代码设计能力、团队协作效率和代码可维护性。在实际开发中,优秀的设计模式使用是衡量一名工程师是否具备高级水平的重要标准。学习主流框架(如 Spring、MyBatis、Hibernate)的实现,通过源码加深对设计模式的理解。一些设计模式(如策略模式、观察者模式)在特定领域(如游戏开发、事件驱动系统)中广泛应用,成为必备技能。设计模式是一种总结了软件开发中的常见问题和解决方案的经验集合。高级工程师通常要处理复杂系统,设计模式可以帮助解耦模块、简化复杂逻辑。

2024-11-16 19:06:27 1041

原创 查看解决端口占用,以及docker解决端口占用的原理

Docker 的端口隔离得益于网络命名空间技术和端口映射机制,使得每个容器的端口独立于主机和其他容器。这种隔离性不仅减少了端口冲突的风险,还提高了系统的安全性和灵活性。

2024-11-16 13:40:21 5805 2

原创 mac上使用docker搭建gitlab

通过以上步骤,你就可以在 Mac 上成功搭建 GitLab 了。如果需要进一步配置或遇到问题,可以查看 GitLab 官方文档或在命令行中运行。GitLab 官方提供了 Docker 镜像,可以直接使用它来启动一个 GitLab 实例。你可以根据需要修改 GitLab 的配置,例如调整端口、域名等。这些配置文件通常位于。等待几分钟,GitLab 容器启动完成。来进行更多管理操作。

2024-11-13 10:57:10 1485 2

原创 离线部署maven项目笔记(2)

在离线服务器上进行打包,您可以将联网服务器上的 Maven 本地仓库拷贝过去,确保所有的依赖都可以在离线环境中使用。如果本地仓库中缺少某些依赖,Maven 会尝试从远程仓库下载。中配置这个本地仓库路径,确保 Maven 可以从本地读取依赖,而不再尝试访问网络。表示 offline 离线模式),Maven 将从本地仓库读取依赖进行构建。:这是 Maven 项目的核心文件,定义了项目依赖、插件、配置等信息。:在联网服务器上,Maven 的本地仓库通常位于。目录下的文件,构建过程中会编译和打包这些文件。

2024-11-10 13:15:34 522

原创 如何在docker创建的mysql容器中执行mysql脚本

进入容器终端后,连接到 MySQL 服务并执行脚本。文件已经在容器内部,或者你可以将它挂载到容器中。这样可以免去进入容器的步骤,直接在主机上执行脚本。你可以通过以下步骤进入 MySQL 容器并执行。:登录 MySQL 后,运行以下命令来执行。文件(假设文件路径为。

2024-11-08 08:27:07 729

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除