Social Icons

使用 py-spy 分析 Python WSGI 服务器:追踪处理器中的 CPU 消耗

假设我们正在使用 Gunicorn 运行一个 Flask 应用程序(因为我们就是这么酷)。我们有几个端点,其中一个表现异常。是时候戴上我们的 py-spy 护目镜,看看发生了什么。 我们的嫌疑犯:CPU 消耗者 这是一个简单的 Flask 应用程序,其中一个处理程序显然有问题: from flask import Flask import time app = Flask(__name__) @app.route('/') def hello_world(): return...

a month ago
4 分钟阅读

现代日志记录:使用Fluentd、Vector和Loki

在21世纪,我们的目标是建立一个可扩展、安全且合理的日志设置。为此,我们依靠以下三大工具: * Fluentd:日志收集的多功能工具(不想惹恼陈词滥调警察,所以不叫瑞士军刀) * Vector:新晋选手,正在挑战Fluentd的地位 * Loki:Grafana的回答是:“如果日志和指标一样酷呢?” 步骤1:告别Syslog(别哭,这是为了更好) 首先,我们需要果断地放弃Syslog。以下是确保你准备好大迁移的快速清单: * 清点所有Syslog来源 * 识别任何自定义解析或路由规则 * 备份当前的Syslog配置(以防万一) * 通知你的团队(或许还可以订些披萨——变革总是伴随着美食更好) 步骤2:设置Fluentd - 万能日志工具 Fluentd是我们日志之旅的第一站。它的优点如下: * 支持多种输入和输出插件...

a month ago
4 分钟阅读

大规模托管私有包存储库:Nexus与Artifactory的权衡

竞争者:Nexus 和 Artifactory 在红角,我们有 Sonatype Nexus:自 2008 年以来一直在展示其存储库实力的开源宠儿。在蓝角,JFrog Artifactory:以其强大的功能集而闻名的企业级巨头。 这两个工具都旨在让您在管理包时更轻松,但它们各有独特的风味。让我们来分解一下: Nexus:开源强者 * 优点: * 提供免费开源版本 * 轻量且易于设置 * 对 Maven 存储库的强大支持 * 内置安全功能 * 缺点: * 插件生态系统不够广泛 * 用户界面对某些用户来说可能不够直观 Artifactory:功能丰富的巨人 * 优点: * 广泛的插件生态系统 * 高级元数据管理 * 卓越的工件清理和保留策略...

a month ago
7 分钟阅读

Delta Lake 时光旅行:数据审计的时光机

Delta Lake 是一个开源存储层,为 Apache Spark 和大数据工作负载带来了 ACID 事务。它有一个很酷的功能叫做时间旅行。这就像是数据的版本控制,允许你在任何时间点访问和恢复数据的先前版本。是不是很棒? 但为什么你应该关心呢?在法规合规的世界中,这个功能简直就是一种超能力。让我们来详细看看: * 审计跟踪变得轻而易举 * 数据血统?小菜一碟 * 重现历史报告?轻松搞定 * 从意外删除或更新中恢复?毫不费力 时间旅行实战:一个实际例子 假设你正在处理需要审计的财务数据。以下是你如何利用时间旅行的优势: from delta.tables import * from pyspark.sql.functions...

a month ago
4 分钟阅读

Redis 布隆过滤器

让我们来看看什么是布隆过滤器: * 一种空间高效的概率数据结构 * 用于测试元素是否属于集合 * 可能出现假阳性,但绝不会出现假阴性 * 非常适合减少不必要的查找 简单来说,它就像是你数据库的保镖。在真正让你进入数据库之前,它会快速检查某个东西可能在里面。 引入 Redis:快速的助手 为什么选择 Redis?因为它快。快到你眨眼就错过。将布隆过滤器与 Redis 结合,就像给你已经很快的赛车装上火箭。 设置你的 Redis 布隆过滤器 首先,你需要安装 RedisBloom 模块。如果你使用 Docker,只需执行以下命令: docker run -p 6379:6379...

a month ago
4 分钟阅读

OpenAI 宣布下一代推理模型家族——o3

关于OpenAI的语言模型o1和o3的五秒思考 * 2024年9月,公司展示了o1语言模型的预览版。 * OpenAI宣布了o3和o3-mini模型。 * 之前的模型被称为o1。 * 公司故意跳过一个数字,“是出于对Telefonica(一家以O2品牌运营的电信公司)的尊重,以及延续起坏名字的传统,”OpenAI的CEO Sam Altman说。 * 开发者训练o3在回答用户查询前“思考”。 * 模型会有轻微的延迟。 * 它会在给出它认为最准确的答案前重申其推理过程,据TechCrunch报道。 * 用户可以“调整”推理时间——给模型的时间越多,它处理请求的能力就越好。 * 在ARC-AGI测试中,该测试旨在衡量AI学习超出其训练数据的技能的能力,o3得分为87.5%。 * 85%的得分被认为是“人类水平”。 * TechCrunch指出,在外部测试之前,这些结果应谨慎对待。 * 目前,这两个模型对公众不可用,但将开放进行公共安全测试—...

a month ago
2 分钟阅读

解构 Go 中的非阻塞 I/O:epoll、Goroutines 和基于通道的模式

Go 的并发模型结合非阻塞 I/O 技术,可以显著提升应用程序的性能。我们将探讨 epoll 的工作原理,goroutines 如何让并发编程变得轻松,以及如何使用 channels 创建优雅高效的 I/O 模式。 Epoll 之谜 首先,让我们揭开 epoll 的神秘面纱。它不仅仅是一个高级的轮询系统,而是 Go 高性能网络的秘密武器。 那么,epoll 到底是什么? Epoll 是 Linux 特有的 I/O...

a month ago
5 分钟阅读

构建自定义 Prometheus Exporter:使用 Quarkus 导航指标迷宫

我们正在使用 Quarkus Jakarta 构建一个自定义的 Prometheus 导出器,重点是避免高基数并确保高效的指标。准备好迎接一些指标魔法吧! 为什么要自定义导出器?我们不是在重新发明轮子吗? 在深入探讨之前,让我们先解决一个问题:为什么要费心自定义导出器,而不是使用现成的解决方案? * 定制化指标:您的应用程序是独特的,有时您需要的指标并不是现成的。 * 性能优化:自定义导出器可以让您微调测量内容,可能减少开销。 * 避免指标爆炸:强大的能力伴随着巨大的责任——以及避免高基数陷阱的能力。 设置 Quarkus Jakarta 项目 首先,让我们启动并运行我们的 Quarkus 项目。如果您是 Quarkus 的新手,可以将其视为 Jakarta...

a month ago
6 分钟阅读

瘦身Kafka消费者:减少内存消耗

在我们开始健身之旅之前,先来聊聊为什么我们要费心去做这件事。Kafka 消费者如果占用大量内存,可能会导致: * 处理时间变慢 * 基础设施成本增加 * OOM 错误风险增加(没人喜欢凌晨三点被叫醒) * 整体系统稳定性降低 所以,让我们撸起袖子,开始减肥吧! 堆外内存:秘密武器 首先是我们的武器库:堆外内存。它就像内存世界的高强度间歇训练——高效而强大。 堆外内存是什么? 堆外内存存在于 Java 主堆空间之外。它由应用程序直接管理,而不是 JVM 的垃圾收集器。这意味着: * 更少的 GC 开销 * 更可预测的性能 * 能够处理更大的数据集而不增加堆大小 在 Kafka...

a month ago
6 分钟阅读

使用 seccomp 加固容器:安全限制系统调用的实用步骤

Seccomp,全称为“安全计算模式”,就像是容器系统调用的保镖。它决定哪些系统调用可以获得内核的VIP访问权限,而哪些则被拒之门外。但在深入细节之前,让我们先来看看为什么你应该关心这个问题。 为什么要关心系统调用限制? * 减少攻击面:更少的系统调用 = 更少的潜在漏洞 * 改善容器隔离:防止那些好奇的容器到处窥探 * 增强安全态势:谁不想晚上睡得更安稳呢? 现在我们已经引起了你的注意,让我们卷起袖子,动手实践一些实际的seccomp实现。 设置seccomp:分步指南 步骤1:分析你的应用程序 在我们随意阻止系统调用之前,我们需要知道我们的应用程序实际上需要哪些调用。以下是创建系统调用配置文件的方法: # 使用strace运行你的容器 docker run --rm -it --name syscall_profiling your_image...

a month ago
5 分钟阅读

MongoDB 写密集型工作负载:驯服野兽

优化 MongoDB 以应对写密集型工作负载: * 选择一个能均匀分配写入的分片键 * 监控和管理块平衡 * 微调索引以提高写入效率 * 谨慎使用写入确认 * 考虑使用 WiredTiger 存储引擎 写入优化:了解你的工作负载 在我们深入优化技术之前,先来了解一下我们正在处理的内容。MongoDB 中的写密集型工作负载通常包括: * 高频插入操作 * 频繁更新现有文档 * 批量写入操作 * 时间敏感的数据摄取 如果这听起来像是你的用例,那么你来对地方了。现在,让我们开始动手吧! 分片键选择:写入分布的基础 选择正确的分片键就像为摩天大楼挑选完美的地基——如果选错了,其他一切都会变得异常艰难。对于写密集型工作负载,你的分片键应该: * 在分片之间均匀分配写入 * 避免热点 * 随着数据增长水平扩展 以下是一个适合时间序列数据集合的分片键示例: db....

a month ago
5 分钟阅读

英伟达推出适合开发者的紧凑型AI超级计算机——可放在手掌上

* 该公司推出了新的Nvidia Jetson Orin Nano Super开发套件,配备生成式AI,用于创建聊天机器人、AI代理或AI驱动的机器人。 * 其小巧的尺寸使其适合“爱好者和学生”。 * 与之前的Jetson Orin Nano型号相比,CPU性能提高了70%,达到67 TOPS(每秒万亿次操作),据Nvidia称。 * Jetson包括Nvidia AI软件:用于机器人技术的Nvidia Isaac、用于计算机视觉的Nvidia Metropolis和用于传感器数据处理(光、超声波等)的Nvidia Holoscan。 * 这款迷你电脑售价249美元。 * 之前的超级计算机型号售价499美元。...

a month ago
1 分钟阅读

使用 Helm Charts 部署 Quarkus 应用

Kubernetes 功能强大,但它的 YAML 清单就像看油漆干一样无聊。这时,Helm 出现了,作为 Kubernetes 的包管理器,来拯救我们的理智。可以把它想象成 Kubernetes 的 npm,但少了些存在主义危机。 以下是 Helm 成为你新好朋友的原因: * 模板化:告别复制粘贴 YAML 文件! * 版本控制:比你说“哎呀”还快地回滚部署 * 可重用性:分享你的图表,成为团队应得的英雄 * 简化:用一个命令管理复杂的应用程序 为 Helm 的卓越设置你的...

a month ago
5 分钟阅读

配置管理对决:Ansible vs Puppet vs Chef(及更多!)

对于那些喜欢信息像咖啡一样快速而强烈的人: * Ansible:易于学习,无代理,基于YAML * Puppet:成熟,适合大型企业,使用自己的DSL * Chef:基于Ruby,高度可定制,学习曲线陡峭 * Salt:快速,可扩展,基于Python * Terraform:基础设施即代码,云无关 但嘿,别急着走!这里还有很多内容值得深入探讨。 竞争者:深入了解 1. Ansible:简洁之王 Ansible就像那个总是准备好帮助你的朋友,不需要太多回报。它是无代理的,这意味着你不需要在目标机器上安装任何东西。只需SSH访问,你就可以开始了。 主要特点: * 基于YAML的剧本(...

a month ago
8 分钟阅读

提升你的后端技能:持续学习的三重奏

你是一名后端工程师,沉浸在代码中,像没有明天一样编写API。突然,一个框架的更新出现了!你会: * A) 惊慌失措,考虑转行去养山羊 * B) 忽略它,希望它自己消失 * C) 接受挑战,提高你的技能 如果你选择了C,恭喜你!你正在成为后端高手的道路上。但在这个不断变化的技术环境中,你如何保持技能的敏锐呢?让我们深入探讨后端工程师持续学习的三大法宝:代码阅读、参加会议和导师指导。 1. 代码阅读:开发者的每日维生素 还记得父母让你吃蔬菜的时候吗?阅读代码就是编程世界的蔬菜——对你有好处,即使它不总是有趣。 为什么要这样做? * 接触不同的编码风格和模式 * 学习最佳实践(有时也学到不该做的事) * 发现新的库和工具 * 提高自己的代码质量...

a month ago
6 分钟阅读

加入我们的社区 👋

解锁 Suddo.cn — 技术新闻、信息技术课程、教程、编程 的完整会员资格,探索我们丰富的 独家内容

立即注册,随时取消

查看我们的计划