Debian 爱好者社区 为您找到相关结果 349

开源软件对于商业机构的6大好处

持周期,以避免更新混乱的出现。 2、有利于产品的长期发展 福布斯杂志指出,90%的初创公司最后都会失败,而他们当中,只有不到一半的中小型公司存活期能超过5年。如果在产品开发的中途突然出现需要更换供应商的问题,那迁移的成本就很高了。所以,要避免选择只有一个供应商支持的产品。 而开源使得社区成员能够协同编写软件。如 OpenStack 就是由多个公司及个体志愿者共同编写的。这么做,就能保证,在一个供应商出现问题的情况下,其他供应商能继续支持。而且,软件一经开源,企业就会长期投入开发团队以实现产品开发。使用源代码的好处就是,你可以聘用贡献者来保证开发的活跃性。 3、更安全 以开源的方式进行开发,可以很直观地看到,供应商是如何对待安全问题,以及是否在积极保证产品安全。研究源代码并执行独立代码审核,也...阅读全文

博文 2017-11-15 23:41:11 debian.cn

Debian Jessie、Stretch 下安装配置 PHP7.2

- PHP bindings to libsass - fast, native Sass parsing in PHP php-lua - PHP Embedded lua interpreter libapache2-mod-php7.2 - server-side, HTML-embedded scripting language (Apache 2 module) libphp7.2-embed - HTML-embedded scripting language (Embedded SAPI library) php7.2-bcmath - Bcmath module for PHP php7.2-bz2 - bzip2 module for PHP php7.2-cgi - server...阅读全文

博文 2017-12-16 14:16:25 debian.cn

深度解密基于 eBPF 的 Kubernetes 问题排查全景图

包括:无法准确清晰了解、掌控全局的系统运行架构;无法回答应用之间的连通性是否正确;多语言、多网络调用协议带来埋点成本呈线性增长,且重复埋点 ROI 低,开发一般将这类需求优先级降低,但可观测数据又不得不采集。2、下沉的基础设施能力屏蔽实现细节,问题定界越发困难基础设施能力继续下沉,开发和运维关注点继续分离,分层后彼此屏蔽了实现细节,数据方面不好关联了,出现问题后不能迅速地定界问题出现在哪一层。开发同学只关注应用是否正常工作,并不关心底层基础设施细节,出现问题后需要运维同学协同排查问题。运维同学在问题排查过程中,需要开发同学提供足够的上下游来推进排查,否则只拿到“某某应用延迟高”这么笼统的表述,这很难有进一步结果。所以,开发同学和运维同学之间需要共同语言来提高沟通效率,Kubernetes 的...阅读全文

博文 2022-03-21 09:11:51 joseph

Redis 命令、特性介绍与性能调优

value值自增指定的整型数值,并返回自增后的值。只对可以转换为整型的String数据起作用。时间复杂度O(1) DECR/DECRBY:同INCR/INCRBY,自增改为自减。 INCR/DECR系列命令要求操作的value类型为String,并可以转换为64位带符号的整型数字,否则会返回错误。 也就是说,进行INCR/DECR系列命令的value,必须在[-2^63 ~ 2^63 – 1]范围内。 前文提到过,Redis采用单线程模型,天然是线程安全的,这使得INCR/DECR命令可以非常便利的实现高并发场景下的精确控制。 例1:库存控制 在高并发场景下实现库存余量的精准校验,确保不出现超卖的情况。 设置库存总量: SET inv:remain "100" 库存扣减+余量校验: DECR...阅读全文

博文 2018-10-27 10:37:55 debian.cn

为保护隐私而生 反取证操作系统:Kodachi

用。 学校机房(从 U盘 和 DVD 启动)使用 任何可以(从 U盘 和 DVD )启动使用的计算机上。 安装向导: 如何在你的硬盘驱动器上安装 Kodachi Linux: 从你的 USB 或 ISO 映像引导。 在桌面菜单上进入 – >系统 – > Refracta 安装程序 – >使用 su – >输入密码 r@@t00 – >简单安装 – >运行 GParted – >设备 – >创建分区表 – >应用 – >分区 – >新建 – >添加 – >应用所有操作 – >关闭 – >关闭 GParted 窗口 – >选择分区 – >确定 – >继续安装 – >关闭窗口 – > y – >配置主机及用户名!不要在这里更改用户名,否则 Kodachi 脚本会出现错误 – >勾选前 2 个框允许...阅读全文

博文 2021-01-28 17:50:19 debian.cn

Debian 成为主流 Linux 操作系统的七个原因

。我满足于坚持使用默认设置,不过我很欣赏这一点:Debian提供了一种选择,然后放心让用户做出正确的选择。 4.不一样的说明文档 Debian的说明文档散布于无数个网站,并不经常被讨论。然而,这些年来,我发现,如果我将“Debian”添加到我的互联网搜索,选择近些年来的结果,几乎总是会找到一个网页给出详细的逐步说明,帮助解决我要解决的那个问题。 3.迅速修复错误 我没听说过另外哪个发行版像Debian这么迅速地应对安全或者技术问题。无论Debian维护人员是单枪匹马还是团队合作,他们的响应时间表明了勤勤恳恳的工作态度,值得用户依赖。如果说Debian有时似乎比其他发行版更频繁地更新,那不是由于它有更多的错误,而是由于被其开发人员疏忽的错误比较少。 2.控制安装环节 Debian很早以前就取得了...阅读全文

博文 2021-01-28 17:50:13 debian.cn

Linux 基金会董事 Jim Zemlin:全球开源可持续增长将带来更多价值

Linux 安全性、项目管理及与其他领域结合发展 (1)近期勒索病毒肆虐全球,安全性方面,总会有人拿Linux 与Windows 相比。而 Jim 则不认可这种比较。他认为开发任何一个比较复杂的软件系统,都难免会有安全漏洞。 从安全性的角度来看,在 Linux 开发过程中会启动 CoreOS 项目,对所有代码进行同行评估,成千上万个开源开发者参与其中,对所有代码的安全性进行审议。由此希望通过审计的代码是最安全的,开发出的软件是安全可靠的。 “总而言之,安全是我们的任何项目的重中之重,非常关注与重视的一个问题,包括 Linux 的所有项目” (2)Linux 作为超大规模的项目,又是如何进行管理的呢? “每天我们贡献的代码数量会达到 1 万行,从中抽取 5 千行,还有1800行代码每天都是精心修改的...阅读全文

博文 2021-01-28 17:50:33 debian.cn

Kubernetes 1.9发布:Apps Workloads通用版本与生态系统扩展

(简称GA) 我们兴奋地向大家宣布,apps/v1 Workloads API[1]通用版本现在已经默认启用。Apps Workloads API负责将DaemonSet、Deployment、ReplicaSet以及StatefulSet API等整合起来,从而构建起在Kubernetes内长期运行无状态与有状态工作负载的根本性基础。需要强调的是,Batch Workloads API(Job与CronJob)并不在Apps Workloads API的整合范畴之内,未来前者将推出自己的独立通用稳定版。 Deployment与ReplicaSet属于Kubernetes当中使用频率最高的两个对象,根据一年多以来收集到的实际使用与反馈意见,二者的稳定性已经得到极大提高。SIG Apps[2]也...阅读全文

博文 2017-12-17 01:00:00 debian.cn

Debian 11 "bullseye" 发布,带来内核 exFAT 支持

经过 2 年 1 个月零 9 天的开发,Debian 11.0 "bullseye" 正式发布了。该版本包括许多重大的变化,并将在未来 5 年内得到支持。Debian 11 支持的计算机架构包括:32 位 PC(i386)和 64 位 PC(amd64)64 位 ARM(arm64)ARM EABI(armel)ARMv7(EABI 硬浮点 ABI,armhf)MIPS(mipsel)64 位 MIPS(mips64el)PowerPC(ppc64el)IBM System z(s390x)这次发布中有什么新变化Debian 的这次发行再次带来了比上一版本 buster 更多的软件;本次发行包括 11294 个新软件包,软件包的总数达到了 59551 个。这个发行版的多数软件包得到了更新...阅读全文

谷歌开源了代码评审规范:好坏代码应这样来判断

审 代码评审者指南本来是一个完整的文档,但作者将其分为了 6 部分,读者可根据需要阅读。 代码评审标准代码评审希望达到什么在代码评审中导航 CL代码评审的速度如何写审查的评论处理代码评审的回退 2.CL 作者指南——CL 作者批准代码的评审指南 CL 制定者指南包括一些进行代码评审的开发人员的最佳经验,这些经验能够帮助你更快、更高质量地完成评审。 写一个好的 CL 描述构建一些小的 CL如何处理代码评审者的评论 在谷歌看来,代码审核的目的是确保谷歌代码库的整体代码健康程度。谷歌将以下规则作为代码评审的标准: 一般来说,一旦 CL 能提升整体代码的健康程度,那么即使 CL 不完善,评审者同样也应该倾向于批准该列表。这是所有代码评审指南中的高级原则。它也会有一些限制,例如,如果 CL 添加了一些...阅读全文

博文 2019-09-10 17:19:13 debian.cn

改善 Debian Linux 软件包管理的七款工具

了十个速度最快的镜像,然后把它们写入到你的软件包源列表。apt-spy执行类似的功能。 3. apt-transport-tor 你可能也知道了,Tor是一款匿名浏览工具。然而,即便你注重安全,下载软件包有可能让别人跟踪你的活动,进而一路跟踪你的系统。 apt-transport-tor让你可以堵住这个安全漏洞,它通过Tor来传输软件包管理指令。 2. cron-apt 如果你注重安全,或者只想要最新软件包,cron-apt可以帮助你确保版本最新。顾名思义,cron-apt可以为你的系统调度定期下载,并通知可用更新版。用户往往每天更新一次。 然而要注意:cron-apt下载但不安装更新的软件包。这个限制是有意设置的,因为在无人照看的情况下安装一切会导致系统问题。检查什么更新版可用后,你可以手...阅读全文

博文 2021-01-28 17:50:21 debian.cn

你应该选择Cinnamon作为Linux桌面环境的十个理由

Cinnamon 桌面 Cinnamon目前的最新版本为3.2。Cinnamon可用于多种发行版,其中包括Debian、Arch、Gentoo、Mint、Fedora以及OpenSUSE等。 使用Cinnamon的理由 1. 集成度。桌面的选择与应用可用性并无关联。事实上,我所用过的任何应用都能够在任意桌面环境中运行良好,Cinnamon自然也不例外。不过,Cinnamon确实能够为各类面向KDE与GNOME乃至任何其他桌面编写的应用提供全部必要库,且带来良好的无缝化体验。 2. 外观。Cinnamon拥有清晰、简洁的外观设计,且字体与颜色组合适于阅读。大家可以通过System Settings -> Desktop菜单轻松完成图标显示设置,也能够借此指定桌面图标应该仅显示在主显示器上、副显示器上或者同时...阅读全文

博文 2021-01-28 17:50:21 debian.cn

Debian 10使用 Wine 安装配置微信、QQ与TIM

Serif"="simsun" "MS Shell Dlg"="simsun" "MS Shell Dlg 2"="simsun" "System"="simsun" "Tahoma"="simsun" "Times"="simsun" "Times New Roman CE,238"="simsun" "Times New Roman CYR,204"="simsun" "Times New Roman Greek,161"="simsun" "Times New Roman TUR,162"="simsun" "Tms Rmn"="simsun" 文章wine中文乱码的解决同样是全部换成simsun的reg注册表设置,不过设置更短,如下所示:笔者试过也没有问题。 REGEDIT4...阅读全文

Debian 9 使用kubeadm创建 k8s 集群(上)

正确运行工作负载。 先决条件 本地Linux / macOS / BSD计算机上的SSH密钥对。 如果您之前没有使用过SSH密钥,可以按照如何在本地计算机上设置SSH密钥的说明来学习如何设置它们。运行Debian 9的三台服务器,每台至少有2GB RAM和2个vCPU。 您应该能够以SSH密钥对的root用户身份SSH到每个服务器。Ansible安装在您的本地计算机上。 有关安装说明,请按照Ansible官方安装文档进行操作 。熟悉Ansible Playbook。 有关查看,请查看配置管理101:编写Ansible Playbooks 。了解如何从Docker镜像启动容器。 如果需要复习,请参阅如何在Debian 9上安装和使用Docker的 “第5步 - 运行Docker容器”。 第1步...阅读全文

博文 2019-05-13 22:47:39 debian.cn

Kubernetes源码探疑:Pod IP泄露排查及解决方法

一次VPC IP。 回到UK8S CNI,我们再次分析重现案例日志。这一次有了更进一步的发现,所有kubelet传递给NETNS参数为空字符串的情形都发生在kubelet试图销毁Pod中第二个Sandbox的过程中。反之,kubelet试图销毁第二个Sandbox时,给CNI传入的NETNS参数也全部为空字符串。 到这里,思路似乎清晰了不少,所有泄露的VPC IP都是来自第二个Sandbox容器。因此,我们需要查清楚两个问题: 1. 为什么会出现第二个Sandbox容器? 2. 为什么kubelet在销毁第二个Sandbox容器时,给CNI传入了不正确的NETNS参数? 第二个Sandbox:我为何而生? 在了解的第二个Sandbox的前世今生之前,需要先交待一下kubelet运行的基本原理...阅读全文

Gitlab CI 配置文件 .gitlab

上传的artifacts。默认情况下,artifacts都是在GitLab中永久保存。expire_in允许设置设置artifacts的存储时间,从它们被上传存储到GitLab开始计算。 可以通过job页面的Keep来修改有效期。 过期后,artifacts会被通过一个默认每小时执行一次的定时job删除,所以在过期后无法访问artifacts。 expire_in是一个时间区间。下面可设置的值: '3 mins 4 sec' '2 hrs 20 min' '2h20min' '6 mos 1 day' '47 yrs 6 mos and 4d' '3 weeks and 2 days' 示例配置 设置artifacts的有效期为一个星期: job: artifacts: expire_in...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

阿里巴巴版 JDK 首发 GA 版 生产环境可用

某些测试用例,启动阶段跑分会有 10% 的提高。该特性在阿里巴巴的双 11 抢购场景中得到了大量验证。目前,阿里巴巴正在社区努力推进,希望通过 JEP 的方式将该功能推到上游 OpenJDK 社区。 下图是阿里一个应用在“双十一”期间使用 JWarmUp 时的效果: 说明:图中蓝线是正常启动 (默认开启分层编译),红线是启用 JWarmUp 的 CPU 使用率。 (1)是开启了 JWarmUp 选项,在应用启动时候,流量进来之前积极加载和编译方法。(2)是流量进来的时刻。(3)是正常模式启动下,CPU 消耗 100% 维持了 70s。(注:作图省略了一部分数据)(4)对应的绿线是稳定后 CPU 的使用率。 可以看到应用 JWarmUp 后在流量进来的时候 JWarmUp 可以减少大量 CPU...阅读全文

博文 2019-07-11 10:24:52 debian.cn

Web前端知识体系精简

,但Javascript在函数Function对象中建立了原型对象prototype,并以Function对象为主线,从上至下,在内部构建了一条原型链。 简单来说就是建立了变量查找机制,当访问一个对象的属性时,先查找对象本身是否存在,如果不存在就去该对象所在的原型连上去找,直到Object对象为止,如果都没有找到该属性才会返回undefined。 因此我们经常会利用函数的原型机制来实现JS继承。关于函数原型链可参考博客:JS原型对象和原型链 2、函数作用域 函数作用域就是变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的。在JS中没有会块级作用域,只有函数作用域,因此JS中还存在着另外一种怪异现象,那就是变量提升。关于作用域的介绍请参考博客:函数的作用域和作用域链 3、函数指针...阅读全文

博文 2021-01-28 17:50:33 debian.cn

谷歌公开了内部管理Infra层的两个工具的Paper

系统的很大一部分现在已经有了这样的预期状态抽象层,而不再依赖工作流的状态——这是一个广泛影响业界的趋势。 — 1 — 术语 运行一个现代化的服务有很多必要部分。特别在谈论基础架构即服务时,有些术语很混乱。比如,谁是“用户”?人还是使用基础架构的服务?还是终端用户?或者别的什么? 图1展示了本文所设计的各个参与方: 图1:围绕“服务”的术语 服务是某个团队想要运行的面向用户的系统,比如Gmail或者Map。服务由多个内部子服务组成——比如,Gmail服务的检测垃圾邮件的服务仅仅是组成Gmail的众多服务之一。 为了帮助解释本文的观点,我们会提到Shakespeare服务[1]的服务器部分,这是一个假象的服务,如图2所示。 图2:简单的Shakespeare服务,LB是“负载均衡器” 这个服务是...阅读全文

博文 2023-01-08 11:23:20 CSDN博客

隐私声明

带类型; 您的IP (Internet Protocol)地址,该地址有时可以显示您所在地理位置; 您在本网站内浏览过的页面、广告和链接; 您访问本网站时发出的访问请求及其日期、时间和引荐网址(如有); 通过Cookie标注您的浏览器的唯一性和在本网站的账户信息(包括您访问本网站的各项活动,浏览习惯等);您可以通过修改浏览器设置的方式拒绝cookie; 我们可能会使用浏览器网络存储(包括 HTML 5)和应用程序数据缓存等机制,在您的设备上收集和存储您所浏览过的网页信息; 如果您需要查询、更正您的个人信息或注销账号,请通过 support@debian.cn 与我们联系并提供您的账号和其他验证信息,我们在核实后会回复您的请求。 2. 信息的使用 我们仅在必要的情况下...阅读全文

Docker 17.06 社区版发布

Maven来构建应用,但是运行应用却不需要Maven。多阶段构建能大幅度的减小镜像的体积: REPOSITORY TAG IMAGE ID CREATED SIZE maven latest 66091267e43d 2 weeks ago 620MB java 8-jdk-alpine 3fd9dd82815c 3 months ago 来看一个能创建店铺首页的AtSea示例应用: AtSea使用了多阶段构建,并包含两个过渡阶段:用一个node.js基础镜像构建ReactJS应用,用一个Maven基础镜像将Sprint Boot应用编译成单个镜像。 FROM node:latest AS storefront WORKDIR /usr/src/atsea/app/react-app COPY...阅读全文

博文 2017-06-30 23:08:57 debian.cn

成功运作一个开源项目的15个要点

少。 2、透明 这一点很容易理解:我们要使得社区可以观察和了解你正在做的事情:使用易于查找的可公开访问的源代码存储库,使用面向公众的问题跟踪软件,在社区可以找到的地方公布发布计划,以及在公共论坛捕获会议记录(例如归档邮件列表)。 3、开放 对于很多开源项目来说,“透明度”和“开放性”意味着同一件事,但其实这两个术语的含义截然不同。开放不仅仅指的是“一目了然”(这与透明本质上是一样的)。对于许多人来说,开源的“开放”意味着开放新思想,或开放参与。参与开源项目的规则对于每个人应该是一样的(“公平的竞争环境”):仅仅接受几个补丁是不够的,你必须对新的思路点子开放。总之,你必须允许别人参与你的项目,放弃对项目的绝对控制。 4、保持“公平的竞争环境” 这并不一定意味着你必须让任何人加入项目,而是要确保...阅读全文

博文 2017-11-08 09:58:28 debian.cn

如何在 Debian 下配置邮件服务器

example.tst的Reverse zone配置: 192.168.10.1 IN PTR mail.example.tst. 在配置邮件服务器的过程中,这些记录可以根据系统的要求进行修改。 2.设置主机名 首先,必须在/etc/hostname和/etc/hosts文件中指定邮件服务器的主机名。前者应仅包含主机名。 root@mail:~# vim /etc/hostname mail root@mail:~# vim /etc/hosts ## IP Fully Qualified Domain Name Hostname ## 192.168.10.1 mail.example.tst mail 增加用户 每一个Linux用户,在默认情况下,系统会为其自动创建一个邮箱。这些用户和邮箱将被用作电子邮件帐...阅读全文

博文 2021-01-28 17:50:22 debian.cn

五款流行开源的 HIDS 系统简单介绍

火墙等),OSSEC作为强大的日志分析引擎是一个不错的选择。​后来的发行版增加了用于基于debian的系统的身份验证日志文件,以及用于分析(3.6.0)的非标准Sophos UTM时间戳,用于缩进日志的多行日志收集(3.5.0)以及对多行的其他升级。记录。2. Tripwire顾名思义,这是Tripwire开发的基于主机的免费开放源代码检测系统。该公司也提供商业解决方案,但我们将专注于开源HIDS。开源的Tripwire软件包仅在几乎所有Linux发行版上运行。它以确保数据完整性的强大功能而闻名,它可以帮助系统管理员检测对系统文件的更改,并在文件损坏或被篡改时通知他们。要将其安装在Linux主机上,只需使用apt-get或yum实用程序。在安装过程中,系统将要求您添加必需的密码。最好选择一个...阅读全文

博文 2023-01-26 11:07:43 joseph

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

近日,百度两年前的一桩诉讼案终于有了答案。中国裁判文书网显示,百度运维员工“安某”从 2018 年1 月底到 5 月底,以技术手段在公司服务器上部署“挖矿”程序,非法控制 150 余台服务器以获取比特币、门罗币等虚拟货币,共获利人民币 10 万余元。 事发后,“安某”不仅被没收了所有获利金额,罚款 11000 元,还背上了三年牢饭,有点惨。 4 个月,占用 155 台服务器,获利 10 万余元。 2017 年“安某”正式入职百度,彼时,比特币的价格飙升到了近 2 万美元,按照当时的汇率,一枚比特币人民币价格将近 13 万。虽然后续的币价有所降低,但挖到一枚,还可以挣几万块,这样的诱惑或许没有几个人会选择无视。 2018 年初,“安某”开始打起了挖矿的主意。 挖矿,是指利用服务器CPU的运算...阅读全文

博文 2020-03-17 20:42:41 debian.cn

什么是线程安全,以及并发需要知道的几个概念

的资源一直不释放的话,那么其他阻塞的线程就都不能工作了。 非阻塞则相反,强调的是线程之间并不互相妨碍,所有的线程都会不断尝试向前执行。 死锁、饥饿和活锁这三种情况表示的是多线程间的活跃状态,对于线程来说,以上的情况都是 “非友好” 的状态。 1、死锁一般是指两个或者两个以上的线程互相持有对方所需的资源,并且永远在等待对方释放的一种阻塞状态。例如有两个线程A和B同时共享临界区的资源C,当A占用C时,B处于阻塞状态,然而A的释放需要用到B的资源,这样一来,就变成了A一直在等待B,B也一直在等待A,互相之间永远在等待对方释放的状态。 一般来说,死锁的发生是由于程序的设计不合理导致,而且死锁很难解决,最好的方式就是预防。 2、饥饿是指某一个或者多个线程因为种种原因无法获得所需的资源,导致一直无法执行...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Spinnaker 介绍 – Netflix 的持续交付平台

,Google云,微软云等,后来还支持了容器,但是管理方式还是按照管理基础设施的模式来设计的。 Spinnaker 中管理如下资源: Server Group:最基本的逻辑资源,包括了若干使用相同配置和镜像的虚拟机,若干负载均衡(load balancer),以及安全组。安全组规则(Security Group):就是 AWS 中的安全组,可以理解成防火墙。负载均衡(Load Balancer):AWS 中的 ELB,也可能是安装在虚拟机中的负载均衡。 2. 部署管理 管理部署流程是 Spinnaker 的核心功能,他负责将软件包(可能是手工创建的或者 jenkins 创建的)打成一个镜像,用这个镜像生成对应的虚拟机,让服务真正运行起来: pipeline 在 Spinnaker 中一个部署流程叫做...阅读全文

博文 2018-12-21 19:30:47 debian.cn

提问的智慧 – 全文

提问在学习中占据着重要的位置,很多人对知识好奇,却收效甚少,原因他们是尚未掌握正确提问的方法,因此,我尝试修改《提问的智慧》,发布出来。原作者是Eric S. Raymond,这篇文章在黑客界拥有很高的地位,指引无数黑客前进,希望对你有用。 为何要做一个修改注释版? 试图做出一个容易阅读,方便理解,与时俱进,可以执行的提问执行方案。 原翻译为2010年,新版2013年,时隔2年有余,原作有变; 尊重原作的复制及引用协议[1]; 原翻译很好,检查中发现有些语句不顺,语意不准,或者已不符合现在语言规范,参照王刚老师的版本进行修改; 附上自己的看法和注解,更加适合现在阅读使用。 每当有人来向我提问,我可以将他指引到这篇文章,可以减少很多的不必要的麻烦。 【本章注释】 [1]复制协议中注明了应用该...阅读全文

博文 2009-10-01 13:18:00 debian.cn

说透IO多路复用模型_京东云开发者的博客

作者:京东零售 石朝阳 在说IO多路复用模型之前,我们先来大致了解下Linux文件系统。在Linux系统中,不论是你的鼠标,键盘,还是打印机,甚至于连接到本机的socket client端,都是以文件描述符的形式存在于系统中,诸如此类,等等等等,所以可以这么说,一切皆文件。来看一下系统定义的文件描述符说明: 从上面的列表可以看到,文件描述符0,1,2都已经被系统占用了,当系统启动的时候,这三个描述符就存在了。其中0代表标准输入,1代表标准输出,2代表错误输出。当我们创建新的文件描述符的时候,就会在2的基础上进行递增。可以这么说,文件描述符是为了管理被打开的文件而创建的系统索引,他代表了文件的身份ID。对标windows的话,你可以认为和句柄类似,这样就更容易理解一些。 由于网上对linux...阅读全文

博文 2023-01-01 15:13:50 CSDN博客

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

塞队列性能更好的 Mpsc (多生产单消费)队列,它使用大量的 long 类型字段来做内存区域填充,用空间换时间解决了伪共享问题,减少了并发情况下的写竞争来提高性能。 在流量高峰时期,链路数据的发送队列这一块的性能从火焰图上看 CPU 占比平均小于2%,日常服务CPU整体水位与0采样相比几乎没有明显差距,因此我们经过多方面压测对比后,决定在生产环境客户端侧开放链路数据的全量上报,实现了在得物技术史上的全链路 100% 采样,终结了一直以来因为低采样率导致问题排查困难的问题,至此,在第三阶段,得物的全链路追踪技术正式迈入 Trace2.0 时代。 得益于 OpenTelemetry 整体的可插拔式 API 设计,我们二次开发了 OpenTelemetry Java...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

处理器架构消亡史

是英特尔客户的Compaq决定淘汰Alpha,转而采用即将推出的Itanium架构,并于2001年将所有Alpha知识产权出售给了英特尔。除此之外,惠普公司所推出的精简指令集架构PA-RISC也没逃得出被淘汰的命运。它也是20世纪80年代中的一员,它首次出现于1986年2月26日,被应用于HP 3000 930系列以及HP 9000 840模式处理器之中。后来,这种架构被惠普公司与英特尔联合开发的Itanium架构所取代。这样看起来,英特尔的Itanium或成为最大的赢家,但事实证明,在市场的发展过程中,没有哪一种处理器架构能够永远合适市场的需求——这款于1999年被命名的64位架构,自从2017年之后就再也没有更新了,2019年英特尔发布通知称安腾9700处理器开始退役,2021年7月最后...阅读全文

一位五年工作经验架构师的感悟

,生存不易,这些经历同样丰富了我,内心也变得越来越强大。这些年影响我最大的一些思想有: 1、不要给自己设限:不在把自己禁锢在舒适区,不要怕前面有挡着你的人 2、缩小自己的反馈环: 3、不断以小的正能量,不断积累成就感。 4、不要怕做决定:错误的决定,比没有决定好。 渐渐地,我从不说的人,变成了比较能说的人,能说可能还不是会说。会说更考验技巧,情商。 渐渐地,周围的人又说我是段子手。 渐渐地,变成了一个经常黑人的人。哈哈。 不断去思考,总结,提炼做事模式,思考方式,这些方式可以指导你持续成功。 视野,越大,收获越多,站在全局去看问题,这也是一个架构师需要的。 所以,保持开放心态,视野决定格局,格局改变命运。 写在最后 如果大家能看到最后,首先谢谢。 有的人要骂:标题就是唬人的,一点都没有讲技术...阅读全文

博文 2021-01-28 17:50:31 debian.cn

三个技巧 大幅减少 Docker 镜像体积

:1dd78a123212328bd… 123MB 文件大小是否已发生改变? $ docker images | grep node- node-multi-stage 331b81a245b1 678MB node-vanilla 075d229d3f48 679MB 最后一个镜像(node-multi-stage)更小一些。你已经将镜像的体积减小了,即使它已经是一个很小的应用程序。但整个镜像仍然很大!有什么办法可以让它变得更小吗? 2. 用 distroless 去除容器中所有不必要的东西 这个镜像包含了 Node.js 以及 yarn、npm、bash 和其他的二进制文件。因为它也是基于 Ubuntu 的,所以你等于拥有了一个完整的操作系统,其中包括所有的小型二进制文件和实用程序。 但在运行容器时是不需要这些东西的,你...阅读全文

博文 2018-09-06 10:50:29 debian.cn

案例:Redis命令不当 引起数据库雪崩 造成数百万损失

Redis的一些开发规范和建议: 1.冷热数据分离,不要将所有数据全部都放到Redis中 虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高! 2.不同的业务数据要分开存储 不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务! 在实际的使用过程中,redis最大的瓶颈一般是...阅读全文

博文 2018-10-27 10:18:18 debian.cn

在 Kubernetes 上扩展 TensorFlow 模型

CRD。这里是一个分布式训练作业的[基本例子](https://github.com/kubeflow/tf-operator/blob/master/examples/v1/mnist_with_summaries/tf_job_mnist.yaml),它依赖于两个 worker,在没有 Chief 和 Parameter Server 的情况下进行训练。这种方法适用于实现 TensorFlow 同步训练策略,如 MirroredStrategy。 你看,除了标准的 Kubernetes 资源和服务(例如卷、容器、重启策略)之外,规范还包括一个 **tfReplicaSpecs**,其中你定义了一个 worker。在容器化的 TensorFlow 代码中,将 worker 副本计数设置为 2...阅读全文

粘合万种芯片的“万能胶” 是摩尔定律的续命丹吗? - 硬件

优势的角度来看,尽管AMD、英特尔已经证明了多芯片架构具有一定的经济性,但实际上,与微缩晶体管相比,芯片万能胶并不是在所有时候都能带来最大的成本优势。清华大学交叉院博士研究生冯寅潇和清华大学交叉院助理教授马恺声发表了一篇有关Chiplet成本计算的论文,通过建立Chiplet精算师的成本模型对多芯片集成系统的成本效益进行精准评估。结果发现,现阶段的Chiplets方案只有在800平方毫米的大芯片上才真正有收益,且工艺制程越先进,收益效果越明显。对于5nm芯片系统,当产量达到2千万时,多芯片架构才开始带来回报。戴伟民也表示,不是所有芯片都适合用chiplet的方式,不要为了拆分而拆分,不少情况下单颗集成的系统芯片(SoC), 如基于FD-SOI工艺集成射频无线连接功能的物联网系统芯片,更有价值...阅读全文

博文 2022-04-08 07:35:46 cnBeta.COM

Apache Kafka发布 3.0 正式版

重置工具添加“ ”选项通过kafka-streams-application-reset添加新的命令行参数,应用程序重置工具的 Streams 使用变得更加灵活:–internal-topics. 新参数接受逗号分隔的主题名称列表,这些名称对应于可以使用此应用程序工具安排删除的内部主题。将此新参数与现有参数相结合,–dry-run允许用户在实际执行删除操作之前确认将删除哪些主题并在必要时指定它们的子集。MirrorMakerKIP-720:弃用 MirrorMaker v1在 3.0 中,不推荐使用 MirrorMaker 的第一个版本。展望未来,新功能的开发和重大改进将集中在 MirrorMaker 2 (MM2) 上。KIP-716:允许使用 MirrorMaker2 配置偏移同步主题的...阅读全文

博文 2021-09-26 14:13:03 joseph

Cortex: 高可用和水平扩展Prometheus监控系统

[1] 高可用模式: https://prometheus.io/docs/introduction/faq/#can-prometheus-be-made-highly-available[2] Cortex: https://github.com/cortexproject/cortex[3] CNCF-sandbox: https://github.com/cortexproject/cortex[4]Prometheus: https://prometheus.io[5]Cortex Architechure With Nginx: https://github.com/cortexproject/cortex/blob/master/docs/architecture.md[6...阅读全文

博文 2021-10-09 17:00:22 知乎

Debian 向左:或将迎来根本性改革 - OSCHINA

有两个: 1、技术委员会。技术委员会有权对技术相关的政策做出决定,在最极端的情况下,如果开发者的行为被判定为对发行版具有很大的破坏性,那么委员会可以推翻 Debian 开发者的决定。 但是,技术委员会的决策能力权威在过去的一些争论中受到了损害,比如委员会被个人开发者控诉不公平。 可能,委员会在操作中的确存在不透明的地方,然而 Debian 社区中过于鲜明的个体性,或许也难逃其究。正如 Stapelberg 所言,Debian 的一些维护者出于个人喜好拒绝合作,维护者给予的个人自由度太高对 Debian 构成了严重影响。 2、一般决议流程(general-resolution process)。也就是投票,项目成员可以通过投票来改变或推翻技术委员会(或其他人)的决定、制定新的政策、或者修改章程...阅读全文

博文 2021-12-06 13:55:01 中文开源技术交流社区

分布式运行时 Dapr 知多少

制以完成诸如服务发现、流量控制、重试熔断、安全访问等,而这相关的网络控制功能就是集成在Dapr的Sidecar中,以对应用透明的方式集成进来的。整体的服务调用流程如下图所示: PS:如果对Istio熟悉的同学需要注意,二者虽然都是通过Sidecar的模式进行网络控制,但二者是有有区别的。Dapr是以API的方式,而Istio是以代理的方式(不改变HTTP请求URI)。 2. State management(状态管理) 在进行微服务开发时,绕不开的话题就是服务间的状态共享、并发一致性问题。对于状态共享,你可能会说,各个服务连接到同一个Redis实例就OK了。是,但不得不考虑潜在的更新冲突的问题。Dapr 以更友好的HTTP API的方式进行状态的存储和读取,同时支持通过ETags进行并发控制...阅读全文

理解 Linux 的虚拟内存

受限于机器总线的数量,在32位机器上,有32条总线,每条总线有高低两种电位分别代表 bit 的 1 和 0,那么可访问的最大地址就是 2^32bit = 4GB,所以说 32 位机器上插入大于 4G 的内存是无效的,CPU 访问不到多于 4G 的内存。 但 64位机器并没有 64位总线,而且其最大内存还要受限于操作系统,Linux 目前支持最大 256G 内存。 根据虚拟内存的概念,在 32 位系统上运行 64 位软件也并无不可,但由于系统对虚拟内存地址的结构设计,64位的虚拟地址在32位系统内并不能使用。 直接操作物理内存 操作系统使用了虚拟内存,我们想要直接操作内存该怎么办呢? Linux 会将各个设备都映射到 /dev/ 目录下的文件,我们可以通过这些设备文件直接操作硬件,内存也不例外...阅读全文

博文 2018-11-25 11:03:49 debian.cn

21款必不可少的Ubuntu桌面应用程序

。 1. Geary电子邮件客户软件 Geary是一款开源桌面电子邮件客户软件,拥有一系列广泛的功能、一个方便的安装向导程序,并与Unity桌面整合起来。如果相比其他邮件客户软件(比如Outlook)你更熟悉Gmail,那么会觉得Geary用起来比默认的Ubuntu电子邮件应用软件Thunderbird更容易。 其他替代方案:WMail(Electron)、Evolution和Claws Mail。 2. 谷歌Chrome浏览器 Mozilla火狐Web浏览器已经安装在你的Ubuntu系统上;就大多数任务而言,它的表现不俗。但是如果你更多时候是个谷歌用户,或者在Windows上用过Chrome,就会很高兴可以在Ubuntu上继续使用它。 除了内置和最新的Linux版Flash播放器外,你还可以用...阅读全文

博文 2021-01-28 17:50:19 debian.cn

2017 年会是 Serverless 爆发之年吗

Serverless 框架之一。该服务最迟支持 Node.js,现在也支持 Java 和 Python。它与 Alexa Skills Kit(软件开发工具包)紧密集成,亚马逊提供交互式控制台和命令行工具,以便上传和管理代码片段。 Google Cloud Functions Google 是为服务架构的最前沿公司,除了推动 Kubernetes,Google 还投资了 Cloud Functions,该架构可以在其公共云基础设施上运行。 Iron.io Iron.io 最初是为企业级应用提供微服务。Iron.io 是用 Go 语言编写的,用于处理高并发、高性能计算服务,并已经集成 Docker 服务,提供一种完整的微服务平台。 IBM OpenWhisk 2016 年 2 月的 InterConnect 大...阅读全文

博文 2021-01-28 17:50:27 debian.cn

OpenAI掌门人Sam Altman:AI的下一个发展阶段_OneFlow

,专门为具体产业调整基础模型?提示词工程(Prompt Engineering,修改向AI输入的任务描述,使AI的输出结果更符合用户的需求)将来会不会成为企业的内部职能? Sam Altman:五年后我们将不再需要提示词工程,或者只需在这方面做少量工作。将来的AI系统不会因为增补了某个特定词就会产生截然不同的输出,而是可以较好地理解自然语言,用户只需以文本和语音形式输入指令,即可让计算机完成图像生成、资料研究、心理咨询等复杂任务。 总的来说,用户只须使用自然语言就可以与计算机交互,当然,如果艺术家能想出更有创造性的描述,也自然就可以生成更好的图像。 2 “AI+”时代:AI for Science、元宇宙 Reid Hoffman:在科学领域,AI模型可以发挥什么作用? Sam Altman...阅读全文

博文 2023-02-04 15:55:11 CSDN博客

Apollo 配置中心简单介绍

- 框架类组件配置,比如CAT客户端的配置。虽然这类框架类组件是由其他团队开发、维护,但是运行时是在业务实际应用内的,所以本质上可以认为框架类组件也是应用的一部分。这类组件对应的配置也需要有比较完善的管理方式。 2、Why Apollo 正是基于配置的特殊性,所以Apollo从设计之初就立志于成为一个有治理能力的配置管理平台,目前提供了以下的特性: 统一管理不同环境、不同集群的配置 Apollo提供了一个统一界面集中式管理不同环境(environment)、不同集群(cluster)、不同命名空间(namespace)的配置。同一份代码部署在不同的集群,可以有不同的配置,比如zk的地址等通过命名空间(namespace)可以很方便的支持多个不同应用共享同一份配置,同时还允许应用对共享的配置进行覆...阅读全文

博文 2021-04-09 17:53:51 CSDN

Sam Altman的成功学|OneFlow

样,比如说资本、技术、品牌、网络效应和做管理。 专注于将你所定义的成功指标增加十倍是有用的,这些指标可以是赚钱、社会地位、世界级影响力或者其他东西。我乐意接受挑战,愿意在各种项目上花时间以解锁下一个项目。但是我希望在每一个项目上都能取得最大成就,创造职业生涯新高度。 但是大多数人都被困于线性发展的泥潭,往往捡了芝麻丢了西瓜,我们要学会抓大放小,寻求跳跃式提升。 在我看来,无论是企业还是个人,最大的竞争优势就是要把目光放长远。我们要打开眼界,看出世界上不同体系之间交融互动的方式。复合增长最重要的就是眼光要尽可能放长远,这样的人才能抢占市场先机,获得最大回报。 要相信指数曲线,耐心坚持下去,最后一定会有惊喜。 2 要有绝对自信 自信拥有不可思议的力量,就我认识的人来说,最成功的往往都是那些自信到...阅读全文

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

会把这些信息填充到将要发送的 HTTP 请求头中: x509 证书使用 tls.TLSConfig 发送(包括 CA 证书)。bearer tokens 在 HTTP 请求头 Authorization 中发送。用户名和密码通过 HTTP 基本认证发送。OpenID 认证过程是由用户事先手动处理的,产生一个像 bearer token 一样被发送的 token。 2. kube-apiserver 认证 现在我们的请求已经发送成功了,接下来将会发生什么?这时候就该 kube-apiserver 闪亮登场了!kube-apiserver 是客户端和系统组件用来保存和检索集群状态的主要接口。为了执行相应的功能,kube-apiserver 需要能够验证请求者是合法的,这个过程被称为认证。 那么...阅读全文

博文 2022-04-18 16:18:04 CSDN

HTTP状态码详解

端在收到错误信息后继续向服务器发送数据,服务器的TCP栈将向客户端发送一个重置数据包,以清除该客户端所有还未识别的输入缓冲,以免这些数据被服务器上的应用程序读取并干扰后者。 400 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 2、请求参数有误。 401 当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当...阅读全文

博文 2021-01-28 17:50:11 debian.cn