Linux下多线程程序为什么消耗大量虚拟内存
线程内分配一个很小的内存1k,整个进程虚拟内存立马增加64M,然后再分配,内存就不增加了。测试代码如下: #include
线程内分配一个很小的内存1k,整个进程虚拟内存立马增加64M,然后再分配,内存就不增加了。测试代码如下: #include
。 我们还可以在其中找到“Create New Document”选项,借此在~/Templates目录中创建一个文档模板并列出现有模板选项。它使用的是用户默认的办公应用,我个人选择了LibreOffice。 8. 多工作区。Cinnamon与其他桌面环境一样提供多桌面功能,并将其称为“工作区”。工作区选择器位于Cinnamon面板中,且会显示每个工作区的窗口缩略图。不过,我发现工作区选择器有时候无法及时跟上窗口的显示位置,所以我通过调整让选择器仅显示工作区数量,而非工作区内的具体窗口。 9. Nemo。大多数桌面都会使用自己的默认应用,Cinnamon也是如此。我个人最喜爱的桌面文件管理器是Krusader,但Cinnamon默认使用Nemo,所以我对它进行了测试。Nemo确实相当出色,界面干...阅读全文
户: sudo adduser sammy 一旦执行该命令,您将看到一些输出,后面是一系列提示,要求您为新用户分配和确认密码。然后,系统会要求您输入有关新用户的任何其他信息。这是完全可选的,可以通过碰撞跳过ENTER ,如果你不希望将信息输入到这些领域。 最后,系统会要求您确认您提供的信息是否正确。输入Y继续。整个过程看起来像这样: OutputAdding user `sammy' ... Adding new group `sammy' (1001) ... Adding new user `sammy' (1001) with group `sammy' ... Creating home directory `/home/<^>sammy' ... Copying files...阅读全文
Secret 时,大量的 watch 事件会急剧增加 kube-apiserver 的负载,并会导致错误配置过快传播到整个集群。在这种情况中,给不需要经常修改的 ConfigMap 和 Secret 设置 immutable: true 就可以避免类似的问题。注意,设置 immutable: true 之后,ConfigMap 和 Secret 内容更新时需要删除并重新创建,且使用它们的 Pod 也需要删除重建。IPv4/IPv6 双栈支持 BetaIPv4/IPv6 双栈支持在 v1.20 的时候进行了重构,并将于 v1.21 中进入 Beta 版本(默认开启),kubeadm 也已经支持创建 IPv4/IPv6 双栈集群。该特性开启后,Kubernetes Service 和 Pod 会同时分配...阅读全文
前言 Kubernetes 中大量用到了证书, 比如 ca证书、以及 kubelet、apiserver、proxy、etcd等组件,还有 kubeconfig 文件。 如果证书过期,轻则无法登录 Kubernetes 集群,重则整个集群异常。 为了解决证书过期的问题,一般有以下几种方式: 大幅延长证书有效期,短则 10年,长则 100 年; 证书快过期是自动轮换,如 Rancher 的 K3s,RKE2 就采用这种方式; 增加证书过期的监控,便于提早发现证书过期问题并人工介入 本次主要介绍关于 Kubernetes 集群证书过期的监控,这里提供 3 种监控方案: 使用 Blackbox Exporter 通过 Probe 监控 Kubernetes apiserver 证书过期时间; 使...阅读全文
、Thread Pool Size、Buffer Size、Request Timeout、Feature Switch、Server Urls等。配置伴随应用的整个生命周期 配置贯穿于应用的整个生命周期,应用在启动时通过读取配置来初始化,在运行时根据配置调整行为。配置可以有多种加载方式 配置也有很多种加载方式,常见的有程序内部hard code,配置文件,环境变量,启动参数,基于数据库等配置需要治理 权限控制 由于配置能改变程序的行为,不正确的配置甚至能引起灾难,所以对配置的修改必须有比较完善的权限控制不同环境、集群配置管理 同一份程序在不同的环境(开发,测试,生产)、不同的集群(如不同的数据中心)经常需要有不同的配置,所以需要有完善的环境、集群配置管理框架类组件配置管理 还有一类比较特殊的配置...阅读全文
然现在的公司对我们还是很不错)。 钱,对于我而言,就是想买个安心。我用它来让父母对我的未来安心;让妻子对于未来充满信心(虽然她现在还不算很安心);让整个家庭有一定的风险抵抗能力。 安心以后,就是上路。 我记得第一段工作,是在恒生。我当时在恒生银行事业部,工作一年后,我发现自己进步很慢,在技术体系没有任何进展,公司的技术体系很旧,而且基本不进化。我自己做了一个技术的演进,使用了一种新的方式提升了平台的整体能力(当年还没有平台能力这些体系思路)。然后还期待年底被表彰下,技术人也是虚荣的,呵呵,就是期望可以带来成就感。 做着做着,发现没有人可以帮助我提升,虽然当时我很弱,我的学**思路也不清晰。平时就是逛逛网站,学**的很肤浅。但是,我内心感受到:如果要是这样待下去,肯定废了,几年之后,还是同样的...阅读全文
返回一个空的记录集 。 Lookup 而没有索引支持 Lookup 的功能和 SQL 联合查询类似。为了获得良好的性能,作为外键的键值上需要有索引。这并不明显,因为其使用并没有在 explain() 中报告。这些索引并不包含在 explain() 记录的索引里,那些索引是供管道操作符$match、$sort 出现在管道开始时使用的。现在,索引可以覆盖聚合管道的任何阶段 。 不使用多条更新 db.collection.update() 方法用于修改一个已存在文档的一部分或全部,或者是整个替换一个已存在的文档,这取决于你提供的 更新参数 。除非你设置 multi 参数,更新匹配查询条件的所有文档,否则它不会更新集合里的所有文档。这一点不是那么明显。 忘记哈希对象中键序的意义 在 JSON 中,一...阅读全文
0.269t 0.053t 0.025t D 14.6 86.2 1081:18 influxd在出现堆积时,wa很高,说明问题再次出现在磁盘io上,而且influxd的SHR空间占用了25g,又是为什么?面对新出现的问题,当前的主要手段仍然是从influxdb配置文件入手,但是该如何优化?2.tsi原理工欲善其事,必先利其器。查阅了相关资料之后,整理了influxdb使用tsi索引时原理图:说明:写入influxdb时,会同时写wal文件及cache内存, wal用于宕机恢复cachecache在达到配置中的阈值时,会进行snapshot快照,进行落盘influxdb的series及index索引会在内存中全量保存,用于快速检索wal文件大小在达到配置中阈值时,会进行压缩转换到index索引...阅读全文
开源社区是个独特的存在。它虽然结构松散但却又切实有效,为社会提供便利好用的产品却不以利益为目的,将志趣相同的人们聚集在一起但又完整地保存了每一个个体的独特性...... 这些开源社区就像是一场场风格迥异的社会实验。 其中,Debian 社区是一个典型代表。作为 Linux 最早的发行版本之一,诞生于1993年的 Debian 可以算是开源社区中的“活化石”。这也令 Debian 在机制、行事和文化等方面都体现出了一定的“古典”特质。 最近,Debian 社区正在酝酿一件大事 —— 改革自己的决策机制。一直以来,Debian 的决策机制都饱受诟病,不少优秀的开发者因此离开,这样的变革或许不可避免。 01 离开 “长久以来,Debian 都难以作出改变。” 2014年的时候,Joey Hess...阅读全文
束使用 Deployment、DaemonSet、ReplicaSet 或者 StatefulSet 跨节点部署 Pod使用多节点使用基于角色的访问控制(RBAC)在外部托管Kubernetes集群(使用云服务)升级Kubernetes版本监控集群资源和审计策略日志使用版本控制系统使用基于Git的工作流程(GitOps)缩小容器的大小用标签整理对象(译者注:或理解为资源)使用网络策略使用防火墙使用命名空间K8s 中的命名空间对于组织对象、在集群中创建逻辑分区以及安全方面的考虑至关重要。 默认情况下,K8s 集群中有 3 个命名空间,default、kube-public 和 kube-system。RBAC 可用于控制对特定命名空间的访问,以限制组的访问以控制可能发生的任何错误的爆炸半径,例...阅读全文
已知问题规模为n的前提A,求解一个未知解B。(我们用An表示“问题规模为n的已知条件”) 此时,如果把问题规模降到0,即已知A0,可以得到A0->B. 如果从A0添加一个元素,得到A1的变化过程。即A0->A1; 进而有A1->A2; A2->A3; …… ; Ai->Ai+1. 这就是严格的归纳推理,也就是我们经常使用的数学归纳法;对于Ai+1,只需要它的上一个状态Ai即可完成整个推理过程(而不需要更前序的状态)。我们将这一模型称为马尔科夫模型。对应的推理过程叫做“贪心法”。 然而,Ai与Ai+1往往不是互为充要条件,随着i的增加,有价值的前提信息越来越少,我们无法仅仅通过上一个状态得到下一个状态,因此可以采用如下方案: {A1->A2}; {A1, A2->A3}; {A1,A2,A3...阅读全文
Web前端技术由html、css和javascript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言。而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构。本文将对Web前端知识体系进行简单的梳理,对应的每个知识点点到为止,不作详细介绍。目的是帮助大家审查自己的知识结构是否完善,如有遗漏或不正确的地方,希望共勉。 JAVASCRIPT 篇 0、基础语法 Javascript基础语法包括:变量定义、数据类型、循环、选择、内置对象等。 数据类型有string,number,boolean,null,undefined,object等。其中,string,number和boolean是基础类型,null...阅读全文
读取。用户态进程读取这些数据后,进一步关联 Kubernetes 元数据后推送到存储端。这是整体处理过程。eBPF 的超能力体现在能订阅各种内核事件,如文件读写、网络流量等,运行在 Kubernetes 中的容器或者 Pod 里的一切行为都是通过内核系统调用来实现的,内核知道机器上所有进程中发生的所有事情,所以内核几乎是可观测性的最佳观测点,这也是我们为什么选择 eBPF 的原因。另一个在内核上做监测的好处是应用不需要变更,也不需要重新编译内核,做到了真正意义上的无侵入。当集群里有几十上百个应用的时候,无侵入的解决方案会帮上大忙。但作为新技术,人们对 eBPF 也存在些许担忧,比如安全性与探针性能。为了充分保证内核运行时的安全性,eBPF 代码进行了诸多限制,如最大堆栈空间当前为 512、最...阅读全文
较于PHP、Python、Java来说,JavaScript是最有可能在物联网大行其道的解释性语言。 JavaScript在浏览器没有对手,nodejs在服务器端也在不停的攻城拔寨,积累了大量的资源,构建了一个完整的应用开发生态环境。 JavaScript语言本身特点适合互联网,事件驱动,异步使单线程处理网络事件得心应手。 JavaScript已经跨界到物联网,受到了行业巨头的关注,各种项目发展的如火如荼。 未来的物联网开发 如果JavaScript在物联网获得成功,那么物联网的开发将会发生巨大的变化。 底层驱动由C实现,应用开发者不需要关注硬件,大量的互联网、移动互联网应用开发者加入物联网开发。 传统的交叉编译、烧写、调试的开发方式使用范围将急剧缩小 所见即所得,上位机和下位机的架构由C...阅读全文
没找到命令行安装的方法,只能在nautilus中鼠标双击安装。安装后可以看到新的词库和皮肤。 搜狗输入法的设置界面 自行调整设置的其它选项,然后就能愉快地使用了。 搜狗输入法(更换皮肤后) 文/匿蟒(简书作者) 原文链接:http://www.jianshu.com/p/424fe8e7109e...阅读全文
》(LFS)是杰勒德·比克曼斯等人编写的久负盛名的安装Linux的教科书,描述了从源代码编译Linux系统的方法。这本书可以从在Linux From Scratch网站上免费下载到,下载链接如文末。书中详细地描述了如何从零开始构建一个完整的 Linux 系统,不过 LFS 包含的套件较少,一般来说 BLFS 提供的套件更多,其几个相关的子项目有如下这些: Beyond Linux From Scratch(BLFS) 标准LFS仅仅安装了足够让系统启动的基本软件,以及使新系统能够编译新软件包的开发工具。BLFS包括了更多的软件包,且都有相应指导。 Crosss Linux From Scratch(CLFS) 为需要进行交叉编译(即在一个平台上编译另一个平台的代码)的用户提供指导,正式版本为1.0...阅读全文
df -Th 完整测试截图可以在这里下载(感谢yoyojacky提供)。 总结: GEEEKPI 团队最终对比表格如下: 测试项目 Raspbian2017-03-03 Debian 9 Arm64bit 提升倍数 系统信息 Arm 32bit/ext4文件系统 Aarm64bit/f2fs文件系统 见文件系统测试 CPU单线程 367.2971 25.1195 14.62倍 四线程 1017.6742 62.6079 16.40倍 八线程 1920.0601 62.6711 30.64倍 内存随机 5.7678 2.1925 2.63倍 内存连续 6.3309 2.9392 2.15倍 网络性能 74.6Mbps 94.3Mbps 1.26倍 文件连续读写 5.7655 7.1506 见下文...阅读全文
更加自由。 在这里,我不得不表达我对 Mir 的恨意。说真的,它颠覆了我对自由软件社区的看法。 我曾经认为能够为那些深爱着这项服务的用户服务是一种崇高的特权,但是我现在认为自由软件社区的大部分成员都存在极度的反社会人格,非常习惯于怀恨主流的一切东西。在 Windows 系统成为主流,他们就会怀恨在心。从理性角度出发,Windows 做了很多非常优秀事情,他们的努力值得尊敬。当 Canonical 逐渐成为主流之后,Ubuntu 再次成为非理性仇恨攻击的对象。 那些听风就是雨的媒体极有可能会写道 iOS 和 Android 系统没有竞争对手是如何的可怕,然后又会在 Canonical 在开源社区所掀起的整合又是如何的可怕。Fu*k the shit。 从回复来看啊,Shuttleworth 充...阅读全文
在上周二于德克萨斯州奥斯汀市召开的DockerCon 2017大会上,这家容器厂商宣布推出“Moby项目”,将其旗下的Docker产品(包括DockerCE与Docker EE两款商用产品)从Docker开源项目当中剥离出来。同时,Moby也将成为面向特定基础设施创建定制化容器软件的重要起点。 Docker化身Moby,这一品牌调整行为引发了广泛的争议,难道是Docker公司出问题了?不然。 事实上很好理解,提起Docker很多人的第一反应是这是一个开源项目,而不是一个产品或者一个公司,这对于Docker公司很尴尬。这道理就如同Linux领域的RedHat,假如红帽公司名叫Linux,还能取得今天的成功吗? 在上周二于德克萨斯州奥斯汀市召开的DockerCon 2017大会上,这家容器厂商...阅读全文
,RedHat 网站上所谓的 "Under Investigation" 只是继续等待 Linux 主线内核的修复,或许要让 Linux 内核安全有所改善我们需要更多的 stack clash 和 DirtyCow 持续曝光。 因为利益的关系,Linux 基金会对自由软件社区和 GPL 已经非常不友好,虽然 Greg K-Hartman 一直强调 Linux 基金会是一个非盈利组织,但一个 NGO 的 CEO 为什么有高达 49 万美金(2014 财年)的年薪,也没人知道为什么 Greg 本人会有 Google 的邮箱(拿 Linux 基金会和 Google 双薪水?),Linux 内核本来有一次改善安全的机会,可惜 Linux 基金会的市场 PR 需求搞砸了整件事。HardenedLinux 社区在这...阅读全文
语化的标识符或添加二进制整型字面量”等轻微改变,因为“这些改变很容易实现”。 Cox谈到了重大变化,例如“对错误处理的额外支持,或引入不可变或只读值类型,添加某种形式的泛型或其他尚未被建议的重要主题。” 从Google的角度来看,Go 2的主要目标是“解决Go在可扩展性方面的重要不足”。Cox提到了生产期的扩展性(云环境中运行并发应用)和开发期的扩展性(大量的开发人员在一个较大的代码库上并行协作)。 大部分主题是介绍和解释用于修改Go的五个步骤: 有关此过程的更多详细信息,我们建议您阅读博客文章Toward Go 2。有兴趣为Go 2推荐新功能的用户请参考GitHub上的关于该语言的Wiki。 查看英文原文:Google Discusses Go 2 感谢张卫滨对本文的审校。...阅读全文
。通过把来自不同列的数据关联起来,查询规划器(query planner)现在可以避免一些边缘情况,在那些边缘情况下,之前的Postgres版本会认为WHERE语句更强的选择性,并且会导致选择了错误计划从而拖慢执行时间。Postgres的这个改进在整个SQL世界中都是极具创新性的。 Postgres 10还对并行性进行了改进。开发者现在可以使用索引扫描(index scans)和仅索引扫描(index-only scans)、并行合并连接(merge joint)以及位图堆扫描。并行查询是通过不同的workers来实现的,因此在某些情况下,设置和分解的成本会超过并行化的好处。默认情况下,可以在大于8MB大小的表以及大于512KB的索引上启用并行表扫描(parallel table scan...阅读全文
。 如果你无法通过Package管理器来安装更新文件的话,你还可以手动安装。在现代Linux发行版系统中,我们还可以直接将下载下来的intel-ucode文件夹拷贝到/lib/firmware目录中,然后运行下列命令完成更新: echo 1 > /sys/devices/system/cpu/microcode/reload 下面给出的是Ubuntu平台中实现手动更新的方法,以及截图: Intel所发布的原版微代码更新完整教程如下: --Microcode update instructions -- Thispackage contains Intel microcode files in two formats: *microcode.dat *intel-ucode directory...阅读全文
下命令暂时绕过名为 mount 的 bash 别名:\mount 方法 2 - 使用引号: "command" 或 'command' 如下引用 mount 命令调用实际的 /bin/mount:"mount" 这里单引号和双引号都可以。 方法 3 - 使用命令的完全路径 使用完整的二进制路径,如 /bin/mount: 方法 4 - 使用内部命令 command 就是在执行的命令前加上 command 命令,样例如下: command cmd command cmd arg1 arg2 要绕过 .bash_aliases 中设置的别名,例如 mount: command mount command mount /dev/sdc /mnt/pendrive/ “command” 直接运行命令...阅读全文
这一年来有关国内公司进军内存产业的消息甚嚣尘上,紫光公司凭借原有的英飞凌、奇梦达基础在DDR3内存上已经作出了突破,小批量生产了DDR3内存,下半年还会推出更主流的DDR4内存芯片,正在努力追赶国际主流水平。但是放眼整个内存市场,DDR5内存很快就要来了,更可怕的是未来即便是DDR5内存也很可能被更新的技术淘汰。 业界已经有人提出了DDR内存将死的看法,未来需要高带宽的产品将转向HBM内存,2020年会有HBM 3内存,2024年则会有HBM 4内存,届时带宽可达8TB/s,单插槽容量可达512GB。 对于HBM内存,DIY玩家可以说也是相当熟悉了,AMD在2015年的Fury系列显卡上首次商用第一代HBM技术,超高的带宽、超低的面积占用彻底改变了当时的显卡设计,随后NVIDIA在...阅读全文
4月1日,腾讯公司发布了一段短片,跟大家开了个愚人节玩笑。腾讯宣布,筹备近两年的“AI生态鹅厂”已在贵州贵安新区完成项目主体建设,预计于年内投产运行。由于企鹅所需饲养条件较高,目前腾讯将先以贵州平坝灰鹅作为试点,未来或考虑引入天鹅和企鹅。据说还有鹅脸识别、鹅语翻译、觅影治鹅、鹅屎咖啡等技术。 今天腾讯宣布,养鹅是不存在的,但贵州贵安新区的那个山洞却是真正存在的。它叫腾讯贵安七星数据中心,是一个特高等级数据中心。 2017年10月,腾讯贵安七星数据中心工程正式进入项目建设施工阶段,项目主体为五横一竖共六个隧道。工程建成后,整个数据中心的工作、电力等设备将全部置于其中。 腾讯表示,它具有高度安全,高隐蔽、高防护的特点,将用来放置腾讯业务最核心的数据,代表着腾讯在数据产业的前瞻战略。 数据中心是...阅读全文
我司使用钉钉作为主要的内部通讯工具,基本上大家在电脑和手机上都开着,消息可以第一时间查看,报警消息的即时性要求比较高,我们计划使用钉钉来发送报警通知。本文将简要介绍发送消息的API使用样例。钉钉的API接口文档,请查阅钉钉开放平台。 介绍如何用 Python 实现钉钉自动发送消息,你可以用来和报警平台整合,或者做ChatOps。 获取 access token 要使用钉钉发送消息,首先需要获取access token,代码如下: def get_access_token(): url = 'https://oapi.dingtalk.com/gettoken?corpid=%s&corpsecret=%s' % (corp_id, corp_secret) request...阅读全文
cloud, intelligent edge ” ,对 GitHub 的收购将对此目标发挥重要作用。Friedman 表示,云是开发者的核心需求,微软将致力于不仅仅将自己的 Azure 云服务插入到 GitHub 中,还会集成其他平台(如 AWS 和 Google 云平台)以帮助开发者。 5、进驻 GitHub Marketplace 针对 GitHub Marketplace ,微软有着许多的规划。Friedman 表示,微软计划利用该市场使开发者社区中的所有人都可以使用微软的所有开发工具和服务。 6、集成 Visual Studio Code 最后,Friedman 表示,微软将直接将其开源的 Visual Studio Code 开发环境的功能整合到 GitHub 中,为开发者提供“更加无缝...阅读全文
SQL审核是保证数据库 DDL 和 DML 安全使用、SQL变更可追溯、降低线上数据事故概率的重要手段。去哪儿网开源的 Inception 工具有较大的使用基础,提供了相对完善的 API 接口,结合一些外层的操作界面,可以实现SQL审核、执行、备份和恢复功能,为DBA操作利器。本文详细介绍如何配置 Inception 和 Yearning 的整合。 Inception Inception是一个自动化运维工具,在Mysql前做一个审核和操作的屏障。跟Inception的交互是程序级别的,即通过Python或其他程序编程实现对Inception的命令调用,并解析结果。 Inception的文档地址:http://mysql-inception.github.io/inception...阅读全文
用程序创建新的沙箱。在此主要版本中还添加了几个新命令和选项,以及各种其他改进和依赖项更改。 在底层,Flatpak 1.0需要一些最新的开源技术,包括OSTree 2018.7,Bubblewrap 0.2.1或更高版本(默认包含0.3.0版本),并且不再支持支持xattr的文件系统。这里提供完整的更改日志,供技术人员使用,您可以从GitHub下载Flatpak 1.0.0。 我们敦促Linux操作系统供应商为其当前或即将推出的操作系统版本更新或采用Flatpak 1.0版本,以便为用户提供最佳的Linux应用程序沙盒体验。 Flatpak可与Canonical的Snap竞争,允许Linux用户安装标准存储库中没有的最新版本的应用程序。...阅读全文
2018年11月12日,北京时间16:00,Linux基金会在德国柏林“Ceph Day”上正式宣布成立“Ceph基金会”来支持Ceph开源项目。Ceph基金会接受Linux基金会的管理,它的成立将为Ceph社区的合作和成长提供一个中立的机构。高级会员和一般会员每年缴纳会员费,准会员是教育机构或政府组织,并被邀请免费加入。 理事会由所有高级成员,普通成员代表,准成员代表和Ceph领导团队(技术治理机构)代表组成。董事会负责: 建立并批准用于支持Ceph项目的年度预算 建立特设委员会以满足项目的当前需求 协调外展或营销 定期开会讨论基金会活动,Ceph项目的现状以及整体项目战略 在董事会面前对任何决定或事项进行投票 Ceph基金会董事会不对Ceph的技术治理负责,也没有任何直接控制权。开发和...阅读全文
有手动创建或导入的镜像来改变这一点,仅作为缓存条目存储的镜像不会被复制。 CLI 覆盖默认项目 由于不得不经常使用 lxc 项目切换来在项目之间切换客户端,因此与多个项目进行交互可能会很繁琐。当想要在特定项目中执行的操作是一个简单的操作(如启动容器)时尤其如此。 LXD 3.8 现在在整个命令行客户端都有一个 –project 选项,它允许覆盖特定操作的项目。 ZFS 压缩支持 迁移协议提供了 ZFS 压缩支持。 此外还有大量 bug 修复与其它功能,详情查看 发布公告 。 下载地址:https://linuxcontainers.org/lxd/downloads/ Debian社区网站内容即将同步至腾讯云+社区,邀请大家点击链接,一同入驻。...阅读全文
和强大性,更重要的是它的框架(MSF)。它允许使用者开发自己的漏洞脚本,从而进行测试。 之所以称为框架,因为 MSF 本身包含了很多漏洞攻击模块,由一群开发者在进行维护和更新,更重要的是几乎每个 CVE 漏洞都会被添加到 MSF 里,有人称之为是“可以黑掉整个宇宙”的渗透测试框架。 这个强大的框架日前已发布最新的 5.0 版本。这是 Metasploit 团队在过去一年中的工作成果。此外,该版本还是自2011年以来 Metasploit 的第一个主要版本。Metasploit 5.0 带来了许多新功能,以及新的发布周期。 其中官方特别提到 Metasploit 5.0 使用了新的数据库,并提供了一种新的数据服务。新版本引入了新的规避机制(evasion capabilities),支持多项语...阅读全文
缓存功能,保证存储在客户端内存的数据,在收到来自服务器的失效通知时才失效。 另外,当客户端和服务器的连接中断时,客户端无法接收到数据失效通知,这可能会导致服务出现问题。针对这种情况,一般的做法是重新建立客户端和服务器之间的连接,并更新客户端当前的缓存。antirez 表示可以一直保持连接是最好的情况,但为了降低风险,Redis 服务器在与客户端断开连接时,会将失效通知发送给其他客户端。 这项名为”Client side caching” 的功能尚未正式确定名字,最后可能会被成为”Tracking”。Redis 作者还表示在 Redis 6 候选版发布之前,这些功能都会进行调整,希望社区能积极反馈意见。 由于 Client side caching 功能需要使用 RESP3 协议来支持实现...阅读全文
Ryzen 9 3950X 系统上,任何版本的速度均未达到 OpenJDK 8 的速度。 结论: 当对所有执行的 Java 基准测试结果取几何平均值时,OpenJDK 8 毫无疑问是最快的 Java 版本。业界经常听到有关 OpenJDK 8 仍可提供最佳性能的消息,以及为什么英特尔的 Clear Linux 在有众多选择的情况下仍坚持该版本的原因。从本文的测试结果来看,这不足为奇。 好消息是,从这种几何意义上来看,OpenJDK 14 是经过测试的发行版中第二快的版本。与之前的版本相比,其领先优势虽然很小,但整体来看毕竟是在保持进步。...阅读全文
:25千兆以太网联盟(25gigabit Ethernet Consortium)。 以太网技术联盟主席 BradBooth 说:“以太网发展非常迅速,作为一个整体,我们觉得25G的名字对联盟的范围来说太有限了”,”我们希望开放这个市场,这样业界就可以有一个组织来提高以太网规范,以适应新市场和发展中市场。” 25G以太网联盟于2014年7月成立,旨在帮助指定单轨25Gbps以太网(即光纤上的单色)和双轨50Gbps以太网,并于2015年完成草案。IEEE标准组织于2014年11月开始工作,并于2016年6月同意IEEE802.3by标准。随后,确定了各类光纤的物理规格,并于2017年进行了多供应商测试示范。 现在,人们的注意力已经转移到了100Gbps以上的速度上,向“万亿位以太网”迈进。ETC...阅读全文
Linux”。同时,这一发行版既模块化又针对现代机器进行优化。 更具体地说,Serpent 将会是一个“真正现代化的 Linux 发行版”(A Truly Modern Linux Distribution),它将采用发行优先、兼容性更高的设计决策。同时还将把过去十年左右的时间里更明智的设计改进纳入 Linux 发行版设计中: 不再拆分 usrbin整个过程均采用 100% 的 clang 编写(包括内核)musl 作为 libc,依靠编译器优化而不是内联 asmlibc++ 代替 libstdc++LLVM 的 binutils 的变种(lld、as等)混合源/二进制分发从x86_64-generic通用基线转向新的 CPU,包括针对 Intel 和 AMD 的优化程序包管理器中基于功能的订阅(硬...阅读全文
有望提升40%以上。除了CPU性能,ARMv9还非常重视整体的性能提升,包括降低内存延迟(从150ns降至90ns)、频率提升(从2.6GHz到3.3GHz)内存带宽(从20GB/s到60GB/s)、缓存等。ARMv9这次与性能有关的一个重要升级是SVE2指令集,SVE最早是ARM与富士通合作的浮点性能扩展,日本最强也是TOP500最强超算富岳就使用了SVE指令集,现在推出的是第二代SVE浮点指令了。相比SVE的128位矢量,SVE2可以支持多倍128位运算,最多2048位,因此SVE2可以增强ML机器学习、DSP信号处理能力,提升了未来5G、虚拟现实、增强现实以及CPU本地运行ML的性能,同时ARM未来还会继续提升AI人工智能性能。除了CPU之外,这次还简单提到了未来的Mali GPU...阅读全文
来了解硬盘的整体健康状况:$ sudo nvme smart-log /dev/nvme0n1 Smart Log for NVME device:nvme0n1 namespace-id:ffffffff critical_warning : 0 temperature : 21 C available_spare : 100% available_spare_threshold : 10% percentage_used : 2% endurance group critical warning summary: 0 data_units_read : 5,749,452 data_units_written : 10,602,948 host_read_commands...阅读全文
负责任的选项。 在每个操作系统使用周期内,谷歌还面临软件包重大版本升级的挑战,因为这可能需要对软件配置进行重大改变。为了让这个过程自动化,谷歌工程师编写了一个无人值守的升级工具来处理很多常见的问题。这种“自动化升级”意味着大多数谷歌员工无需通过重新安装机器,并重新创建所有配置来手动升级。不过为了实现这一点,谷歌需要对升级过程进行全面测试,并检查所有已更改的主要软件包是否继续运行(在 Ubuntu 中,主要版本之间的升级可能多达数千个软件包)。有时,在发生软件包弃用且工程师必须决定如何推进的情况下,很难提供自动化。 据称,谷歌完成所有 Goobuntu 的升级通常要花费一年的时间,整个过程对于团队来说是一个巨大的压力。而且很多时候他们遇到的一些 bug 已经在上游被修复了,但这些改进却从未被合...阅读全文
Netty+Nacos+Disruptor自研企业级API网关 download:https://www.51xuebc.com/thread-566-1-1.html React18+TS+NestJS+GraphQL全栈开发示例 全栈开发是指一位开发人员可以熟练掌握前端、后端和数据库等多个领域的技术,能够完整地开发一个应用程序。在本文中,我们将介绍如何使用React18+TS+NestJS+GraphQL这个技术组合来进行全栈开发。 技术选型 在开始开发之前,我们需要选择合适的技术栈。以下是我们所采用的技术: React 18:React18是React框架最新版本,它具有更好的性能、更好的可访问性、更好的代码拆分等特点,可以提高开发效率和应用性能...阅读全文
关。 18. 针对单点故障——实施冗余。 19. 为了容错性和持久性——实施数据复制。 20. 对于用户到用户的快速通信 — 使用 Websockets。 21. 分布式系统中的故障检测——实现心跳。 22. 数据完整性——使用校验和算法。 23. 高效的服务器扩展——一致性哈希。 24. 去中心化数据传输——考虑 Gossip 协议。 25. 基于位置的功能 — 使用四叉树、Geohash 等。 26. 避免特定的技术名称 — 使用通用术语。 27. 高可用性和一致性的权衡——最终一致性。 28. 对于IP解析和域名查询——DNS。 29. 处理网络请求中的大数据——实施分页。 30. 缓存删除策略 — 首选...阅读全文
CTO 招聘需求 ** 职位介绍:** 1. 全面负责技术层面的整体运营,制定研发战略和计划,负责全面实施,并与业务发展需求. 系统现状等结合起来; 2. 全面支持平台日常安全运营. 系统维护. 升级,确保公司各项投融资业务能在网站上安全. 有序开展,保障系统和数据的安全. 稳定; 3. 负责平台的研发与核心技术管理工作,组织制定和实施重大技术决策和技术方案; 4. 研究决策网站技术发展路线,规划公司产品的技术构架,负责互联网产品技术框架的选型与搭建,程序开发及技术攻坚; 5. 网站的技术团队的梯队化建设及管理,包括技术团队的培养; 6. 主导公司技术架构. 数据库结构. 业务逻辑等编码工作; 7. 负责制定技术开发规范. 编码规范等技术团队...阅读全文
几个星期前,我一个朋友问我:“为什么要关心 Go 语言”? 因为他们知道我热衷于 Go 语言,但他们想知道为什么我认为 其他人 也应该关心。本文包含三个我认为 Go 是重要的编程语言的原因。 安全 个人而言,你和我或许完全有能力在 C 中编写程序,既不会泄漏内存,也不会不安全地重复使用内存。然而,整体上,即使有超过40年的经验,用 C 的程序员也无法可靠地这样做。 尽管静态代码分析、valgrind、tsan 以及 “-Werror” 已经存在了几十年,却很少有证据表明这些工具被广泛认可,更不用说广泛采用。总而言之,事实表明,程序员根本无法安全地管理自己的内存。现在是离开 C 的时候了。 Go 不需要程序员直接管理内存,所有内存分配都由语言运行时自行管理,使用前初始化,必要时检查边界。它肯...阅读全文
安全(比如沙箱)。 Btrfs:https://facebookmicrosites.github.io/btrfs/ Btrfs 是下一代文件系统,它以当下的数据中心为基础。它是一个写时复制(CoW)文件系统,专注于高级功能实现、容错、修复和轻松管理。Btrfs 旨在解决和管理大型存储子系统,并支持快照、联机碎片整理、池化和集成的多设备支持等功能。 Netconsd:https://facebookmicrosites.github.io/netconsd/ Netconsd 是一个基于 UDP 的 netconsole 守护程序,为 Linux netconsole 消息提供轻量级传输。它接收并处理来自 Linux 内核的日志数据,并将其作为结构化数据提供以给生产工程师以快速识别集群中问...阅读全文
随着 Debian Buster 10.3 的发布,Debian Buster 日趋稳定。如果在生产上使用了 Debian 9 的系统,现在是可以安全的,灰度升级到 Debian Buster 做前期验证了。这里我们整理一下国内较知名的镜像站点,共大家在生产环境中使用。 如何更新系统安装源 一般我们修改 /etc/apt/sources.list 文件,将 Debian 的默认源地址改成新的地址即可,比如将 http://deb.debian.org 改成 https://mirrors.163.com,可使用以下这条命令: sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list 注意...阅读全文
deployments,而背后的复杂性被隐藏在简单的抽象中。但为了充分理解它为我们提供的价值,我们需要理解它的内部原理。 本指南将引导您理解从 client 到 Kubelet 的请求的完整生命周期,必要时会通过源代码来说明背后发生了什么。 这是一份可以在线修改的文档,如果你发现有什么可以改进或重写的,欢迎提供帮助! 1. kubectl 验证和生成器 当敲下回车键以后,kubectl 首先会执行一些客户端验证操作,以确保不合法的请求(例如,创建不支持的资源或使用格式错误的镜像名称)将会快速失败,也不会发送给 kube-apiserver。通过减少不必要的负载来提高系统性能。 验证通过之后, kubectl 开始将发送给 kube-apiserver 的 HTTP 请求进行封装。kube-apiserver 与...阅读全文
解决这个问题之前,我们依赖于传统的工作流引擎。比如,一个工作流列出部署新二进制文件的步骤:在集群X上做金丝雀测试,然后将N部署到集群Y和Z上,运行测试等等。 创建工作流本身就需要大量工作,因此我们只为经常需要做的事情创建工作流,比如二进制文件的版本更新。我们通常手动处理不那么常见的情况,比如重启。已有的脚本经常会过期而不再适用。 对于运维人员来说,这些工作流很容易实现:做X,然后Y。想要添加压力测试?只需要添加一个步骤。但是随着工作流使用规模的扩大,它的问题也显露出来。 首先,扩展工作流会造成很多重复。每个服务都有很好的理由要求一些特殊逻辑,这意味着需要定制化的实现。尝试了几次整合工作流的实现,但是只有适用于某个特定模型的服务才能使用。这样导致的重复让服务变得不一致。最佳实践,比如跨集群的有...阅读全文
了这里面的东西,每个程序员都应该可以做到这一点。嗯,但愿吧。 重视语言特性,而不是语言 很多人在乎自己或者别人是否“会”某种语言,对“发明”了某种语言的人倍加崇拜,为各种语言的孰优孰劣争得面红耳赤。这些问题对于我来说都是不存在的。虽然我写文章批评过不少语言的缺陷,在实际工作中我却很少跟人争论这些。如果有其它人在我身边争论,我甚至会戴上耳机,都懒得听他们说什么 为什么呢?我发现归根结底的原因,是因为我重视的是“语言特性”,而不是整个的“语言”。我能用任何语言写出不错的代码,就算再糟糕的语言也差不了多少。 任何一种“语言”,都是各种“语言特性”的组合。打个比方吧,一个程序语言就像一台电脑。它的牌子可能叫“联想”,或者“IBM”,或者“Dell”,或者“苹果”。那么,你可以说苹果一定比 IBM 好...阅读全文