首页
学习
活动
专区
工具
TVP
发布

腾讯技术工程官方号的专栏

专栏作者
1089
文章
2407697
阅读量
884
订阅数
Linux内核解读
(1)内核、一些特权指令,例如填充页表、切换进程环境等,一般在ring0进行。内核态包括了异常向量表(syscall、中断等)、内存管理、调度器、文件系统、网络、虚拟化、驱动等。
腾讯技术工程官方号
2024-02-06
2180
Linux Kernel入门指南—魅力内核的奇妙之旅
踏上 Linux 内核世界的探险将成为您职业生涯的一段迷人旅程。作为操作系统之心的 Linux 内核涵盖众多领域,如操作系统原理、硬件抽象以及驱动开发等。在这篇文章中,我们将一探 Linux 内核的奥秘,并为具备编程基础的技术人员提供一处学习起点。
腾讯技术工程官方号
2023-08-04
1K0
Linux后台开发调试经验分享
作者:beck 毕业超过十年了,感慨岁月无情。做了若干年后台开发(之前做电信领域),大致说一下常见的开发心得和调试手段。使用互联网这么多年,收获的很多,总结的很少。本着互联网精神,希望可以帮到互联网另一端的你。由于本人是做 C 语言的开发,陈述的经验也是 C 常用的调试手段。 调试很麻烦,困扰着无数程序员们。很难有人保证自己写的代码一行错误都没有,有问题你就要查。怎么查?高手者,反汇编,看 2 进制;low 一点的就 gdb、看统计;再 low 就加打印。还可以再 low 吗?可以,自己写 bug,别人查。
腾讯技术工程官方号
2023-05-25
5530
从Linux零拷贝深入了解Linux-I/O
作者:kevineluo,腾讯 CSIG 后台开发工程师 本文将从文件传输场景以及零拷贝技术深究 Linux I/O 的发展过程、优化手段以及实际应用。 前言 存储器是计算机的核心部件之一,在完全理想的状态下,存储器应该要同时具备以下三种特性: 速度足够快:存储器的存取速度应当快于 CPU 执行一条指令,这样 CPU 的效率才不会受限于存储器; 容量足够大:容量能够存储计算机所需的全部数据; 价格足够便宜:价格低廉,所有类型的计算机都能配备。 但是现实往往是残酷的,我们目前的计算机技术无法同时满足上述的三个
腾讯技术工程官方号
2022-12-10
1.6K0
深入学习IO多路复用 select/poll/epoll 实现原理
作者:mingguangtu,腾讯 IEG 后台开发工程师 select/poll/epoll 是 Linux 服务器提供的三种处理高并发网络请求的 IO 多路复用技术,是个老生常谈又不容易弄清楚其底层原理的知识点,本文打算深入学习下其实现机制。 Linux 服务器处理网络请求有三种机制,select、poll、epoll,本文打算深入学习下其实现原理。 吃水不忘挖井人,最近两周花了些时间学习了张彦飞大佬的文章 图解 | 深入揭秘 epoll 是如何实现 IO 多路复用的 和其他文章 ,及出版的书籍《深入理
腾讯技术工程官方号
2022-12-08
2.6K2
虚拟内存 & I/O & 零拷贝
作者:mosun,腾讯 PCG 后台开发工程师 一、虚拟内存 1.1 虚拟内存引入 我们知道计算机由 CPU、存储器、输入/输出设备三大核心部分组成,如下: CPU 运行速度很快,在完全理想的状态下,存储器应该要同时具备以下三种特性: 速度足够快:这样 CPU 的效率才不会受限于存储器; 容量足够大:容量能够存储计算机所需的全部数据; 价格足够便宜:价格低廉,所有类型的计算机都能配备; 然而,出于成本考虑,当前计算机体系中,存储都是采用分层设计的,常见层次如下: 上图分别为寄存器、高速缓存、主存和磁盘,
腾讯技术工程官方号
2022-09-28
1.9K0
大牛书单 | Linux 好书推荐
文末有赠书福利。 1991年,22岁的Linus Torvalds还是芬兰赫尔辛基一名学生,他抱着兴趣目的,从最开始编写的磁盘驱动和文件系统,后来干脆完善成了独立的操作系统核心,Linus把源码公开到网上供大家自由下载,成千上万的极客积极响应,不断给Linux提交和修订,开启了Linux时代。 Linux今天已代指使用GNU工程各种工具和应用程序的操作系统生态(被称为GNU/Linux),Linux成为了当今世界上最流行的系统,运行在数以亿计的设备上,从单片机到手机到服务器。 Linux也大力助推了中国IT
腾讯技术工程官方号
2022-08-26
1.1K0
如何实现 1 小时内完成千万级数据运算
作者:ninetyhe,腾讯 CDG 后台开发工程师 本文详细描述如何实现:目前手上可用的资源仅剩一个 16 核剩余 4-8G 内存的机器,单点完成在 1 个小时内千万级别 feed 流数据 flush 操作(主要包括:读数据,计算综合得分,淘汰低分数据,并更新最新得分,回写缓存和数据库)。 背景 目前工作负责的一款产品增加了综合得分序的 Feed 流排序方式:需要每天把(将近 1000W 数据量)的 feed 流信息进行算分计算更新后回写到数据层。手上的批跑物理机器是 16 核(因为混部,无法独享 CPU
腾讯技术工程官方号
2022-07-06
6670
C++异步从理论到实践总览篇
作者:fangshen,腾讯 IEG 客户端开发工程师 C++20带来了coroutine特性, 同时新的execution也在提案过程中, 这两者都给我们在C++中解决异步问题带来了新的思路. 但对比其他语言的实现, C++的协程和后续的execution都存在一定的理解和封装成本, 本系列的分享我们将围绕基本的原理, 相应的封装, 以及剥析优秀的第三方实现, 最终结合笔者framework落地的情况来展开. 1. 纠结的开篇 之前设计我们游戏用的c++框架的时候, 刚好c++20的coroutine已经
腾讯技术工程官方号
2022-06-08
1.2K0
Linux I/O 那些事儿
介绍 Linux IO 的一些基本原理。 作者:arraywang,腾讯 CSIG 我们先看一张图: 这张图大体上描述了 Linux 系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。 这篇文章就以这张图为基础,介绍 Linux 在 I/O 上做了哪些事情。 文件系统 什么是文件系统 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。比如常见的 Ext4、XFS、ZFS 以及网络文件系统 NFS 等等。 但是不同类型的文件系统标准和接
腾讯技术工程官方号
2021-11-18
1.5K0
微信 libco 协程库原理剖析
作者:alexzmzheng 同 Go 语言一样,libco 也是提供了同步风格编程模式,同时还能保证系统的高并发能力,本文主要剖析 libco 中的协程原理。 简介 libco 是微信后台大规模使用的 c/c++协程库,2013 年至今稳定运行在微信后台的数万台机器上。 libco 通过仅有的几个函数接口 co_create/co_resume/co_yield 再配合 co_poll,可以支持同步或者异步的写法,如线程库一样轻松。同时库里面提供了 socket 族函数的 hook,使得后台逻辑服务
腾讯技术工程官方号
2021-08-27
1.5K0
深入浅出 Linux 惊群:现象、原因和解决方案
作者:morganhuang,腾讯 IEG 后台工程师 "惊群"简单地来讲,就是多个进程(线程)阻塞睡眠在某个系统调用上,在等待某个 fd(socket)的事件的到来。当这个 fd(socket)的事件发生的时候,这些睡眠的进程(线程)就会被同时唤醒,多个进程(线程)从阻塞的系统调用上返回,这就是"惊群"现象。"惊群"被人诟病的是效率低下,大量的 CPU 时间浪费在被唤醒发现无事可做,然后又继续睡眠的反复切换上。本文谈谈 linux socket 中的一些"惊群"现象、原因以及解决方案。 1. A
腾讯技术工程官方号
2021-07-06
2K0
十个问题理解Linux epoll工作原理
作者:dustinzhou,腾讯 IEG 运营开发工程师 epoll 是 linux 特有的一个 I/O 事件通知机制。很久以来对 epoll 如何能够高效处理数以百万记的文件描述符很有兴趣。近期学习、研究了 epoll 源码,在这个过程中关于 epoll 数据结构和作者的实现思路产生出不少疑惑,在此总结为了 10 个问题并逐个加以解答和分析。本文基于的内核源码版本是2.6.39 版本 。 Question 1:是否所有的文件类型都可以被 epoll 监视? 答案:不是。看下面这个实验代码: #inc
腾讯技术工程官方号
2021-06-03
3.6K0
深入了解PHP:用gdb调试源码
作者:bobyzhang,腾讯 IEG 运营开发工程师 php编译时有一个debug模式,这个模式会关闭内存优化,提示内存泄露,屏蔽调用栈优化可以让我们看到完整的php c层面的调用栈。 通常我会编译两个php版(一个正常,一个打开debug)在不同的目录,通过export决定使用哪个。 通过php-config命令可以看到configure-options,修改其中的prefix 和 with-config-file-path 到新的目录,然后添加--enable-debug 命令 yongkbma
腾讯技术工程官方号
2021-05-26
1.2K0
企业微信万亿级日志检索系统
作者:datonli,腾讯 WXG 后台开发工程师 背景 开发在定位问题时需要查找日志,但企业微信业务模块日志存储在本机磁盘,这会造成以下问题: 日志查找效率低下:一次用户请求涉及近十个模块,几十台机器,查找日志需要登录机器 grep 日志文件。这一过程通常需要耗费 10 分钟以上,非常低效; 日志保存时间短:单机磁盘存储容量有限,为保存最新日志,清理脚本周期清理旧日志文件腾出磁盘空间,比如:现网一核心存储 7 天日志占用了 90%的磁盘空间,7 天前日志都会被清理,用户投诉因日志被清理而得不到解决;
腾讯技术工程官方号
2021-05-21
1.3K0
一文掌握 Linux 内存管理
作者:dengxuanshi,腾讯 IEG 后台开发工程师 以下源代码来自 linux-5.10.3 内核代码,主要以 x86-32 为例。 Linux 内存管理是一个很复杂的“工程”,它不仅仅是对物理内存的管理,也涉及到虚拟内存管理、内存交换和内存回收等 物理内存的探测 Linux 内核通过 detect_memory()函数实现对物理内存的探测 void detect_memory(void) {  detect_memory_e820();  detect_memory_e801();  d
腾讯技术工程官方号
2021-05-13
1.8K0
Nginx 架构浅析
作者:handsomeli,腾讯 IEG 后台开发工程师 1.Nginx 基础架构 nginx 启动后以 daemon 形式在后台运行,后台进程包含一个 master 进程和多个 worker 进程。如下图所示: master与worker nginx 是由一个 master 管理进程,多个 worker 进程处理工作的多进程模型。基础架构设计,如下图所示: 基础架构设计 master 负责管理 worker 进程,worker 进程负责处理网络事件。整个框架被设计为一种依赖事件驱动、异步、非
腾讯技术工程官方号
2021-04-13
2.1K0
​网络 IO 演变发展过程和模型介绍
作者:jaydenwen,腾讯 pcg 后台开发工程师 在互联网中提起网络,我们都会避免不了讨论高并发、百万连接。而此处的百万连接的实现,脱离不了网络 IO 的选择,因此本文作为一篇个人学习的笔记,特此进行记录一下整个网络 IO 的发展演变过程。以及目前广泛使用的网络模型。 1.网络 IO 的发展 在本节内容中,我们将一步一步介绍网络 IO 的演变发展过程。介绍完发展过程后,再对网络 IO 中几组容易混淆的概念进行对比、分析。 1.1 网络 IO 的各个发展阶段 通常,我们在此讨论的网络 IO 一
腾讯技术工程官方号
2021-02-25
1.3K0
海量小文件场景下训练加速优化之路
作者:星辰算力平台 1. 背景 随着大数据、人工智能技术的蓬勃发展,人类对于算力资源的需求也迎来大幅度的增长。在腾讯内部,星辰算力平台以降本增效为目标,整合了公司的GPU训练卡资源,为算法工程师们提供统一的底层GPU算力服务。借助于虚拟化、算力挖掘等技术,平台服务公司内各BG的AI训练场景,GPU利用率业界领先。同时,通过云原生任务化的方式,对接了内部各大业务,促进了AI技术研究效率的提升和创新研究。 当下,由于AI训练时的高性能计算设备(如NVIDIA GPU)成本高昂,如果任务在训练过程中不能保证
腾讯技术工程官方号
2021-02-23
2K0
CentOS 下线,TencentOS Server 全新登陆带来最强支持
作者:joeytao,腾讯 TEG 后台开发工程师 12 月 8 日,CentOS 项目组突然宣布 CentOS Linux 将结束,取而代之的是滚动版的 CentOS Stream,并作为 RHEL 的上游。这突如其来的消息犹如一颗深水炸弹,世界各地的 CentOS 用户们在惊慌之余不免担忧——部署在 CentOS 上的业务怎么办? CentOS 作为 RHEL 的社区 fork 版本,被称为最稳定的发行版,是世界上使用量最多的服务器发行版之一。TencentOS Server,是腾讯针对云场景
腾讯技术工程官方号
2021-01-12
2.8K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档