InfraPub 为您找到相关结果 498

Golang 之禅: 如何写优质代码

减少耦合的操作,需要通过提供类型需要的依赖项作为该类型上的字段,而不是使用包变量。 简单性很重要 简单性不是老练的代名词。简单并不意味着粗糙,它意味着可性和可维护性。如果可以选择,请遵循较简单的决方案。 编写测试以确认包 API 的行为 软件包的 API 是与使用者的一份合约,不管先后,不管多少,一定要进行测试。测试是确定合约的保证。要确保测试使用者可以观察和依赖的行为。 如果你认为速度缓慢,先通过基准测试进行验证 以性能之名会犯下许多危害可维护性的罪行。优化会破坏抽象、暴露内部和紧密耦合。如果要付出这样的代价,请确保有充分理由这样做。 节制是一种美德 适度使用 goroutine、通道、锁、接口与嵌套。...阅读全文

博文 2020-02-25 20:48:33 debian.cn

Go 1.9 的新特性介绍

可能有问题。自go 1.6之后, 并发地写map会报错,这在一些知名的开源库中都存在这个问题,所以go 1.9之前的决方案是额外绑定一个锁,封装成一个新的struct或者单独使用锁都可以。 群众的呼声是响亮的,并发map在项目中大量使用,所以Go 1.9中在包sync加入了新的map, 查询、存储和删除都是平均常数时间,可以并发访问。 Monotonic Time 先前的time包的实现都是基于wall time的,但是当机器的时钟调整后会有问题。 比如在计算duration的时候,如果时钟往回拨,可能导致end时间比start时间还早。 所以Go 1.9使用monotonic Time来实现大部分的time中的函数,在计算duration的时候不会出现因为时钟调整出现的误差了。 设计文...阅读全文

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

DNS SRV:使用DNS服务器做服务发现

级的记录,按照权重选择,记录的权重越高,被选择的可能性越高。 选择的时候,将所有记录的权重值累加,得到一个选择区间[0,sum],每个记录在[0,sum]中占据一段连续的、长度为自身权重值区间。然后生成一个[0,sum]中的随机数,随机数落在的区间所属的记录就是被选择的记录。 注意事项 在使用DNS SRV的时候,要注意DNS Client是否按照预期的方式处理收到的SRV记录。当前DNS SRV只能够负责提供服务地址列表,对这个列表如何,完全取决于Client的实现。rfc-1035中规定,通过UDP协议传输DNS响应时,UDP报文的负载不能超过512字节,在添加 SRV 记录的时候,要特别注意。通过TCP传输时没有512字节的限制。当一个服务地址有多个相同优先级的SRV记录的时候...阅读全文

博文 2019-03-05 09:35:34 debian.cn

都是颗粒 为什么SSD有寿命、内存却没有?

随着技术的发展,我们使用的存储器也各种各样,虽然都基于芯片颗粒,但表现截然不同,比如说写次数限制,或者叫寿命,SSD固态硬盘就有限制,DRAM内存却没有。 按照分布位置的不同,DRAM内存属于内部存储器,紧挨着CPU处理器,用来临时存放后者需要的运算数据,并与外部存储器进行交换,起到桥梁的作用。 DRAM内存的特点是写速度快、延迟低,但属于易失性存储,也就是一旦断电,数据就会全部丢失。 DRAM内存颗粒利用晶体管加电容来保存数据,而且只是临时存储数据,并没有实质性的写入,不涉及对物理单元结构、属性的改变,所以可以无限次写。 当然,这并不意味着DRAM内存就可以永久使用,毕竟其中的晶体管、电容等物理结构也会慢慢老化,所有电子设备都是如此,只是这个过程非常非常缓慢,正常使用根本感觉不到...阅读全文

理解 Linux 的虚拟内存

前不久组内又有一次我比较期待的分享:“Linux 的虚拟内存”。是某天晚上加班时,我们讨论虚拟内存的概念时,leader 发现几位同事对虚拟内存认识不清后,特意给这位同学挑选的主题。 我之前了一些操作系统的概念,主要是毕业后对自己大学四年的荒废比较懊恼,觉得自己有些对不起计算机专业出身,于是在工作之余抽出时间看了哈工大在网易云课堂的操作系统公开课,自己也了一本讲操作系统比较浅的书 《Linux内核设计与实现》,而且去年自己用 C 写简单的服务器时,也追根究底了了更多的系统底层知识。多亏了这些知识,让我对应用层的知识更有掌控感,也在上次排查问题时(从应用到内核查接口超时)助了我一臂之力。 前几天另一位同事来问另一个虚拟内存相关的问题,我才发现对于虚拟内存,我的理还不够深刻,一些概念还...阅读全文

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

Linux内存buffer和cache的区别

在Linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是取刚存取过得数据会比较快。 一. 内存使用说明 Free 命令相对于top 提供了更简洁的查看系统内存使用情况: [root@debian ~]$ free total used free shared buffers cached Mem: 1035108 1008984 26124 0 124212 413000 -/+ buffers/cache: 471772 563336 Swap: 2096472 842320 1254152 这里显示的单位是KB。 在Linux的内存分配机制中,优先使用物...阅读全文

Apollo 配置中心简单介绍

的权限、流程治理等特性。 Apollo支持4个维度管理Key-Value格式的配置: application (应用)environment (环境)cluster (集群)namespace (命名空间) 同时,Apollo基于开源模式开发,开源地址:https://github.com/ctripcorp/apollo 1.3 配置基本概念 既然Apollo定位于配置中心,那么在这里有必要先简单介绍一下什么是配置。 按照我们的理,配置有以下几个属性: 配置是独立于程序的只变量 配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。其次,配置对于程序是只的,程序通过取配置来改变自己的行为,但是程序不应该去改变配置。常见的配置有:DB Connection Str...阅读全文

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

希捷:明年奉上24TB HAMR硬盘

当然,无论西数还是希捷都在努力开发新的存储技术,目前出货的14TB和即将推出的16TB、18TB都是传统充氦垂直记录技术,接下来就要上新的HAMR热辅助磁记录技术,2030年前有望带来100TB的总容量。 希捷此前称会在2018年内出样HAMR硬盘,2019年量产,初期容量20TB,而最新说法让人更加振奋: 希捷表示,HAMR技术进展顺利,下一代大容量近线硬盘的单盘容量可达24TB,预计2019年批量上市。 当然,希捷还有多驱动技术(Multi-Actuator),硬盘内存同时使用多个机械臂进行写操作,大幅提升性能,写速度可达480MB/s,基本逼近SATA SSD的水准。...阅读全文

博文 2018-05-03 12:02:35 debian.cn

influxdb内存消耗分析及性能优化【探索篇】

-compactions = 8 #描述: 压缩文件时,每秒写入磁盘的数据量,默认48MB #应用:本文设置为16MB,用于减轻磁盘写入时的压力,同样会导致压缩周期变长。 compact-throughput = "16m" #描述: 压缩文件时,每秒最大写入磁盘的峰值数据量,默认48MB #应用:本文设置为16MB,用于减轻磁盘写入时的压力,同样会导致压缩周期变长。 compact-throughput-burst = "16m"4.SHR占用在本文第1小节中,使用linux的top命令可以看到,influxd进程占用RES内存为53g, SHR内存为25g。所以引申问题:何为SHR?为什么会有那么多的SHR?SHR对系统有什么影响?使用man查看top命令的释:SHR – Shared Memory...阅读全文

博文 2021-10-27 16:06:30 知乎

MongoDB 4.2 正式发布 引入分布式事务

findAndModify 命令可以引用现有字段,并加入聚合管道,以获得更强的表现力可还原写,降低了编写处理临时集群故障的代码的复杂性 客户端字段级加密 (FLE,Client-side Field Level Encryption) 现已是 MongoDB 4.2 的一部分,可以在 beta 版中使用。使用 FLE,可以选择性地保护文档中的敏感字段,每个字段都使用自己的密钥加密,并在客户端上无缝密。 MongoDB 是现代应用程序的通用数据库,它汇集了文档模型、智能分布式系统以及在任何地方运行它的能力,从笔记本电脑到大型机,在公共和私有云中运行。如果以 MongoDB 4.2 为例,最快和最简单的方法是在 MongoDB Atlas 上启动一个集群,在 AWS、Azure 和 GCP 上的 60 多个区域都可...阅读全文

博文 2019-08-16 07:54:08 debian.cn

Go 1.15.7 新鲜出炉:修复安全问题,建议升级

Go 官方刚刚发布了 Go 1.15.7 和 Go 1.14.14,以决最近报告的安全问题。建议所有用户都更新到以下版本之一(如果不确定哪个版本,请选择 Go 1.15.7)。具体修复的安全问题如下:1、cmd/go:使用 cgo 的包可能会在构建时导致任意代码执行。当 Windows 上使用 cgo 时,go 命令可以在构建时执行任意代码。运行 “go get” 或任何其他构建代码的命令时,可能会发生这种情况。只有构建不受信任的代码(而不执行代码)的用户才会受到影响。除 Windows 用户外,这还可能影响在 PATH 中使用了 “.” 的 Unix 用户,在模块外部或禁用模块模式下运行 “go get”或构建命令。具体 issue:https://github.com/golang...阅读全文

博文 2021-01-25 15:15:34 mp.weixin.qq.com

Debian 安装包的简单制作

在Linux分发软件有两种形式,一种是源码,一种是安装包。当目标机器不带有编译环境,且不能联网时,安装包就是唯一的方案了。 Linux 下的安装包有多种格式,不同Linux使用的格式并不完全相同。市场上主流的安装包格式是*.deb *.rpm 其中deb是debian系列的安装包,rpm是CentOS系列的安装包。 本文主要介绍的是一种简单的deb安装包的制作方法,使用范围有限。如需了更多可以阅Debian 新维护人员手册 所需工具 如果没有安装dpkg工具包的话,就先安装(一般是默认安装的) sudo apt-get install dpkg 文件结构 example-package ├── DEBIAN (必须) │ ├── control (必须) │ └── md5sums...阅读全文

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

Debian 有什么含义 如何发音

Debian 是个组合单词,它是由 Debian 项目创始人 Ian Murdock 和他的妻子 Debra 的名字缩写。是Linux的一个版本。Debian 是一套为了您的计算机所设计的自由操作系统。Debian 使用 Linux 核心, 但大部份的基本工具则来自 GNU 计划,本站有一篇关于Debian 项目的详细介绍,推荐看看。 Debian 怎么才是标准的,正确的发音呢? 其实这个问题不难,我们可以通过一些视频网站,对项目创始人、或者知名开源人士的访谈来判断如何正确年出 Debian。Youtube上也有专门的视频介绍Debian的发音,参考这里。通过对比,我们可以发现百度翻译上的发音,就是很标准的 Debian 发音。多听几遍,我们就知道如何正确念出 Debian 了。常听到的...阅读全文

博文 2011-12-22 23:14:35 debian.cn

海力士推新企业级SSD:72层闪存 16TB即将到来

SK海力士日前宣布推出新一代企业级SSD硬盘,不过官方并没有公布SSD硬盘的名称,只知道是NVMe标准的,基于72层堆栈的3D TLC闪存,M.2版容量最大4TB,U.2容量可达8TB。 性能方面,SK海力士表示新一代企业级硬盘的连续速度可达3200MB/s,随机性能可达160K IOPS,与2018年FMS展会上推出的72层堆栈闪存硬盘相比,新一代企业级SSD的顺序写性能提升30%,随机写入提升了70%,同时支持取敏感型及混合型应用,包括数据中心、AI、ML机器学习及VDI虚拟桌面架构等。 值得一提的是,SK海力士的新一代企业级SSD具备极低的功耗,正常应用低于14W,这在企业级SSD中是很低的水平了。 此外,SK海力士还表示将在今年底推出容量更大的企业级SSD硬盘,闪存会从目前的...阅读全文

博文 2019-06-20 20:27:53 debian.cn

深入理解Golang之context

context是Go并发编程中常用到一种编程模式。本文将从为什么需要context,深入了context的实现原理,以了如何使用context。 作者:Turling_hu 来源: 掘金 原文链接: https://juejin.im/post/5e52688c51882549417fc671前言这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了context的实现原理,以及了如何使用context。为什么需要context在并发程序中,由于超时、取消操作或者一些异常情况,往往需要进行抢占操作或者中断后续操作。熟悉channel的朋友应该都见过使用done channel来处理此类问题。比如以下这个例子:func...阅读全文

博文 2021-01-27 09:05:27 知乎

Debian 使用VSFtpd安装配置架设FTP服务器

web目录) 然后创建用户 useradd -G clin003-com -d /tmp/clin003 -M user1 注:G:用户所在的组 d:指定创建用户的自己目录 M:不建立默认的自家目录,就是在/home下没有自己的目录 我只是为了给自己的web server做文件传输服务,所以做了一个帐户. useradd -G ftp -d /var/www -M clin003-admin 接着改变文件夹属于的组和用户 chown clin003-admin.clin003-com /var/www 把/var/www改变属主为clin003-admin chmod 711 /var/www 我这设置的取权限是711.也就是文件夹所有者完全权限,同组也就是上面的FTP组和所有人都是可执行权限...阅读全文

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

Debian下编译安装Golang

拉下来,非常耗时;在GitHub连接不稳定时,也可能会失败。这属于网络问题,者也需自行决。 按时间顺序,这里记录了一些相关的坑。如果想直接按照正确的步骤完成编译,可以跳到环境配置小节。 首次编译错误 Go不支持在根目录下编译,必须到src目录去。 $ cd src $ ./all.bash ##### Building Go bootstrap tool. cmd/dist ERROR: Cannot find ~/go1.4/bin/go. Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4. 我本来就是因为只有Go1.3,才要从源码安装新版本的。现在找我要Go1.4,这可如何是好? 自举 Go从1.5版本开始实现“自举...阅读全文

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

Go 1.16 即将发布,这些变更你需要知道

在前几天,Go1.16rc1 抢先发布了。结合常规的 28 发布规律,其将会在 2021.02 月份左右发布正式版本。 这次 Go1.16 也带来了一些新特性或变更。那么作为一个 Gopher,想必不能错过这次的更新。 今天这篇文章将会带大家了一下 Go1.16 的几个需要关注的特性。 废弃 io/ioutil Go 官方认为 io/ioutil 这个包的定义不明确且难以理。所以 Russ Cox 在 2020.10.17 提出了废弃 io/ioutil 的提案。 大致变更如下: Discard => io.DiscardNopCloser => io.NopCloserReadAll => io.ReadAllReadDir => os.ReadDirReadFile...阅读全文

博文 2021-02-17 08:52:12 CSDN博客

Ubuntu 创始人爆粗口: 开源社区弥漫着“反社会人格”

图片来自于 Youtube 关于近期关于放弃 Unity 的决定,Google+用户 Maartin Kozub 在文章中写道: 这个决定并不能简单的用惋惜和悲伤而形容,因为 Canonical 所从事开始的多个项目也宣告了死亡。 我认为当前最大的问题是大部分开源开发者无法深入理,也不会进而欣赏面向对象的编程语言(C++)。他们依然还习惯使用 C 语言来编程一些丑陋的代码,也许有些时候利用个性化定制功能能够让 C 更加接近于 C++,但无疑会增加门槛和降低可性。所以,为何不直接使用 C++?最典型的例子就是 Wayland。 在另一方面,Canonical 是目前极少数创建优秀和简洁开源 C++代码的公司/社区,就像 Mir 一样能够充分利用各种现代化 C++功能。 Mark...阅读全文

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

Linux Systemd被爆远程漏洞 CVE-2017

在 Systemd (linux 操作系统流行的 init 系统和服务管理器) 中发现了一个关键漏洞, 这使得远程攻击者有可能触发缓冲区溢出, 从而通过 dns 响应在目标计算机上执行恶意代码。 Systemd是什么 systemd 是一种系统初始化程序。和 sysVinit 以及 upstart 一样,systemd 会成为系统开机时启动的第一个进程(至少 PID 是 1),由它掌管计算机接下来要做的事情,例如取 fstab 挂载磁盘和按照 runlevel 的设定启动各种服务。其安全的重要性不言而喻。 Systemd远程代码执行漏洞 CVE-2017-9445 该漏洞编号 CVE-2017-9445 ,实际上驻留在 " systemd-resolved " 的...阅读全文

博文 2017-07-02 09:39:36 9445 影响多种Linux系统

深入学习golang — channel

) { // Start handlers for i := 0; i < MaxOutstanding; i++ { go handle(clientRequests) } <-quit // Wait to be told to exit. } 开始就启动固定数量的handle goroutine,每个goroutine都直接从channel中取请求。这种写法比较简单,但是不知道有没有“惊群”问题?有待后续分析goroutine的实现。 5. 传递channel的channel channel作为go语言的一种原生类型,自然可以通过channel进行传递。通过channel传递channel,可以非常简单优美的决一些实际中的问题。 在上一节中,我们主goroutine通过channel将请求传递给工作...阅读全文

博文 2021-01-25 12:39:17 博客园

如何使用 journalctl 清理 journal 日志

下面的逻辑来覆盖默认设置: 主配置文件最先被取, 优先级也最低。 所有 *.conf.d/ 中的配置文件 都会覆盖主配置文件中的设置。 所有 *.conf.d/ 中的配置文件(无论位于哪个目录中), 统一按照文件名的字典顺序处理。 当多个配置文件都设置了同一个选项的时候: (1)如果该选项仅接受一个单一值,那么仅以文件名最靠后(字典顺序)的那一个为准; (2)如果该选项可接受一个值列表,那么将会按照文件名的字典顺序将所有值列表拼接起来。 为了便于排序, 建议给所有 *.conf.d/ 中的配置文件 都加上两位十进制数字的文件名前缀。 如果系统管理员想要屏蔽 /usr/lib/ 目录中的某个配置文件, 那么最佳做法是在 /etc/ 目录中 创建一个指向 /dev/null 的同名符号链接...阅读全文

博文 2021-02-05 15:43:28 博客园

使用 setfacl 管理文件的访问控制列表ACL

group::rwx //同组用户权限 other::rwx //其它者权限 可以看到其它者的权限也是可可写可执行,可以自行测试。现在我们修改其ACL策略,使用户 code 只有取的权限 [root@ debian.cn ~]# setfacl -m u:code:r /opt/test [root@ debian.cn ~]# ls -l /opt/test -rwxrwxrwx+ 1 root root 1 Apr 11 07:25 /opt/test //可以看到权限的最后多了一个 "+" 号 现在再次查看一下此文件的ACL属性: [root@ debian.cn ~]# getfacl /opt/test getfacl: Removing leading '/' from...阅读全文

WebAssembly:无需容器的 Docker (下)

-wasm:wordpress 可以访问 http://localhost:8087 并使用由 PHP Wasm 释器服务的 WordPress,它由 Apache HTTPD 中的 mod_wasm 加载。直接在浏览器中服务 WordPress访问 https://wordpress.wasmlabs.dev 获得示例。 你将看到一个框架,其中 PHP Wasm 释器会现场渲染 WordPress。结论感谢阅本文。 需要消化的内容很多,但我们希望本文有助于理 WebAssembly 的能力以及它如何与你现有的代码库和工具(包括 Docker)结合运行。 期待看到你使用 Wasm 编程!如果你觉得 WasmEdge 不错,不要忘了给我们点个赞!...阅读全文

博文 2023-01-03 06:39:46 spider

新加坡华侨银行(OCBC) 零门槛开户 使用APP在家即可申请

者自己手机自带的商店。2. 进入开户流程准备好所需材料,开始进入开户流程。1 打开APP 选择简体中文。如果没有弹出,可以点击右上角来选择语言。然后,点击 【注册成为新客户】​2 选择第二项 【持电子护照的外国人】,然后点击【开始申请】​输入介绍人代码 【 IRVU37JB 】,可以获得 15 新币,大约80元人民币的奖励。不写的话没有任何奖励。​3 国家代码点进去选择中国大陆 +86,手机号和邮箱输入自己的即可。然后,接收验证码并填写。​4 点击下一步,扫描护照条形码。这一步,把护照打开到有人像的那一页,然后在光线充足的地方使用手机扫描。 需要一些耐心,扫描可能不会很快,手拿稳多试试即可。​5 NFC 取护照芯片。护照合上,手机背面贴在护照正面上,开始取。缓缓移动手机,调整到可以取的...阅读全文

Docker 快速入门之 Dockerfile

在容器环境中,我们可以通过容器创建一个我们自定义过的镜像,那么我们是否可以直接通过基础的镜像直接自定义镜像呢?答案当然是可以的,在 Docker 中我们可以从名为 Dockerfile 的文件中取指令并且自动构建镜像。在本文中,将介绍 Dockerfile 的基本语法以及基本知识。 1 Dockerfile 是什么? Dockerfile 其实是一份文本文档,里面包含了用户可以用来操作镜像的一些指令。通过顺序执行这些指令,最后得到一个自定义的镜像,这有点类似于我们的 shell script。 2 Dockerfile 示例 接下来先看一个 Dockerfile 示例: FROM centos LABEL maintainer="Locez " ENV...阅读全文

博文 2017-12-16 13:50:31 debian.cn

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

法)能够显示中文了。你说还有中文不能显示,还有方框,那确实是会有的。但笔者水平有限,也不懂怎么决了。。 追求精致的者,可以在终端中输入regedit打开wine的注册表,追踪[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]键值作更细致的尝试,比如其他注册表的值,比如把相关的字体复制过去。 wine安装exe软件 参考:deepin wiki中wine安装,在终端中执行 wine uninstaller 会弹出如下窗口 点击界面的Install可以浏览目录的exe文件安装。注意上面界面找不到你要的东西,则在File of types中下拉选择,可以显示更多安装包。 点击下面方框...阅读全文

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

KEYS命令,严格禁止在生产环境中使用) Redis的数据结构和相关常用命令 本节中将介绍Redis支持的主要数据结构,以及相关的常用Redis命令。本节只对Redis命令进行扼要的介绍,且只列出了较常用的命令。如果想要了完整的Redis命令集,或了某个命令的详细使用方法,请参考官方文档:https://redis.io/commands Key Redis采用Key-Value型的基本数据结构,任何二进制序列都可以作为Redis的Key使用(例如普通的字符串或一张JPEG图片) 关于Key的一些注意事项: 不要使用过长的Key。例如使用一个1024字节的key就不是一个好主意,不仅会消耗更多的内存,还会导致查找的效率降低 Key短到缺失了可性也是不好的,例如”u1000flw”比起...阅读全文

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

Docker 核心原理

对 Docker 的使用大部分都比较熟悉,但是说到 docker 的实现原理很多人还是一知半。我把在团队内部做的一次 Docker 核心原理分享总结到文章里,以供参考。 Docker 的优势 Build once, Run anywhere 上面这句话很精辟的总结了 docker 的优点。我从下面几点具体描述 docker 带给开发者的能力 应用标准化 无论什么语言开发的应用,我们都能用 dockerfile 和构建脚本方便的进行应用构建打包,代码库 + 构建 + registry 统一了 CI/CD 流程,也提升了效率。 环境一致 由于应用和依赖全部构建成镜像,做到了一次构建多次交付,无论是开发,测试还是上线环境都是一致的。大大提高了开发效率 应用隔离 由于通过 docker 部署的应...阅读全文

博文 2021-02-25 09:14:23 lxkaka

单核心 IOPS 突破 1000 万,Linux 5.16 有望大幅提升 I/O 性能

,可以视为是每秒的写次数。与其他性能测试一様,IOPS 仅代表理想环境下的性能指标,不保证实际应用下也能达到同等情况。IOPS 的数值会随系统组态而有很大的不同,依测试者在测试时的控制变量而异,控制变量包括取及写入的比例、线程数量以及资料区块的大小等。​从 Jens Axboe 在社交媒体上分享的截图可以看到,他用最新的 Linux 内核补丁在一个物理 CPU 核心上实现了 1000 万 IOPS。此次测试的设备仍然与他此前实现 890 万 IOPS 时所使用的设备保持一致 —— 采用了一个 AMD Ryzen 9 5950X CPU 和英特尔 P5800X Gen2 傲腾 SSD。为了实现这些的性能提升,Jens Axboe 主要是在内核的 block / NVMe / IO_uring...阅读全文

博文 2021-10-27 10:32:50 joseph

SK Hynix量产首个4D NAND闪存:96层堆栈 速度提升30%

随着64层堆栈3D NAND闪存的大规模量产,全球6大NAND闪存厂商今年都开始转向96层堆栈的新一代3D NAND,几家厂商的技术方案也不太一样,SK Hynix给他们的新闪存起了个4D NAND闪存的名字。 在今年的FMS国际闪存会议上正式宣告了业界首个基于CTF技术的4D NAND闪存,日前他们又宣布4D NAND闪存正式量产,目前主要是TLC类型,96层堆栈,512Gb核心容量,使用该技术可以减少30%的核心面积,取、写入速度分别提升30%、25%。 根据SK Hynix之前公布的信息,所谓的4D NAND闪存其实也是3D NAND,它是把NAND闪存Cell单元的PUC(Peri Under Cell)电路从之前的位置挪到了底部,所以叫了4D NAND闪存,本质上其实还是3D...阅读全文

博文 2018-11-05 23:47:54 debian.cn

分布式运行时 Dapr 知多少

Intro Dapr 官方团队已于最近(2021.1.17)正式发布Dapr v1.0,Dapr已正式生产可用,可以部署到自托管环境或 Kubernetes 集群。对于绝大多数开发者来说,想必对Dapr只是有所耳闻,而具体是什么(What),可以决什么样的问题(Why&How),有怎样的应用场景(Where),并不知悉。本文就尝试简要梳理下Dapr,并尝试回答以上问题。 What's Dapr Distributed Application Runtime. An event-driven, portable runtime for building microservices on cloud and edge. 分布式应用运行时。一个事件驱动、可移植的运行时用于在云上和边缘计算上构建...阅读全文

Python的闭包和装饰器

什么是装饰器? 装饰器(Decorator)相对简单,咱们先介绍它:“装饰器的功能是将被装饰的函数当作参数传递给与装饰器对应的函数(名称相同的函数),并返回包装后的被装饰的函数”,听起来有点绕,没关系,直接看示意图,其中 a 为与装饰器 @a 对应的函数, b 为装饰器修饰的函数,装饰器@a的作用是: 简而言之:@a 就是将 b 传递给 a(),并返回新的 b = a(b) 栗子: 上面使用@dobi来表示装饰器,其等同于:qinfeng = dobi(qinfeng)因此装饰器本质上就是个语法糖,其作用为简化代码,以提高代码可性,运行上段代码的结果为: 析过程是这样子的: 1.python 释器发现@dobi,就去调用与其对应的函数( dobi 函数) 2.dobi 函数调用前要指...阅读全文

博文 2014-07-23 17:06:38 debian.cn

Apollo 分布式配置中心详解

于配置中心,那么在这里有必要先简单介绍一下什么是配置。配置有以下几个属性。 配置是独立于程序的只变量 配置首先是独立于程序的,同一份程序在不同的配置下会有不同的行为。其次,配置对于程序是只的,程序通过取配置来改变自己的行为,但是程序不应该去改变配置。 常见的配置有:DB Connection Str、Thread Pool Size、Buffer Size、Request Timeout、Feature Switch、Server Urls 等。 配置伴随应用的整个生命周期 配置贯穿于应用的整个生命周期,应用在启动时通过取配置来初始化,在运行时根据配置调整行为。 配置可以有多种加载方式 配置也有很多种加载方式,常见的有程序内部 hard code,配置文件,环境变量,启动参数,基于数...阅读全文

博文 2020-04-12 12:16:26 debian.cn

bmon:一个强大的网络带宽监视和调试工具

bmon 是类 Unix 系统中一个基于文本,简单但非常强大的 网络监视和调试工具,它能抓取网络相关统计信息并把它们以用户友好的格式展现出来。它是一个可靠高效的带宽监视和网速估测工具。 它能使用各种输入模块取输入,并以各种输出模式显示输出,包括交互式文本用户界面和用于脚本编写的可编程文本输出。 在 Linux 上安装 bmon 带宽监视工具 几乎所有 Linux 发行版的默认仓库中都有 bmon 软件包,可以从默认包管理器中轻松安装,但可用的版本可能比较旧。 $ sudo yum install bmon [On RHEL/CentOS/Fedora] $ sudo dnf install bmon [On Fedora 22+] $ sudo apt-get install bmon...阅读全文

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

linux下查看系统socket读写缓冲区_eyucham的专栏

一:linux下查看系统socket写缓冲区大小配置: http://blog.csdn.net/herecles/article/details/8146017 1. tcp 收发缓冲区默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4161536 87380 :tcp接收缓冲区的默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4161536 16384 : tcp 发送缓冲区的默认值 2. tcp 或udp收发缓冲区最大值 [root@ www.linuxidc.com]# cat...阅读全文

博文 2021-01-26 16:21:35 CSDN博客

三星860 PRO固态盘现身官网:4TB SATA 3售1.2万元

三星的850EVO/PRO以及不带后缀的850固态盘(120GB国行399元)已经发布开卖相当长一段时间了,新品的迹象迟迟看不到。今日有网友从三星北美官网发现了860 PRO已经正式出现。 页面显示,4TB的起售价是1899.99美元(约合1.22万元),型号MZ-76P4T0E。性能方面,连续取最高560MB/s、连续写入最高530MB/s,妥妥的SATA3。 目前,三星850 EVO在国内提供有4TB的选项,也是SATA3,价格是11399元。此前,860 EVO曾现身串行设备组织官网,显示容量从256GB到4TB。 闪存方面,外媒TMHW此前从线人那里得知,860 EVO将是三星的第一代消费级QLC闪存固态盘,也就是4bits/Cell,而PRO可能还是3D TLC。 简单一提,一...阅读全文

博文 2018-01-17 23:33:28 debian.cn

可用于企业的三个非主流 Web 服务器

自从 Tim Berners-Lee 在 1990 年开发 CERN httpd 以来,作为第一个 Web 浏览器的项目,Web 服务器已经走过了很长一段路。 CERN httpd 的源代码于 1993 年公布。虽然一些主要的网络服务供应商为企业提供了闭源的 Web 服务器,但许多其他企业仍保留 Tim Berners-Lee 所体现的开源价值。我们一起来看看目前可用于企业的开源 Web 服务器方案。 Hiawatha Hiawatha 于 2002 年由 Hugo Leisink 开发,他在荷兰学习计算机科学,并希望学生宿舍可以支持互联网服务器。他的目标是开发一个系统,决其他服务器中存在的安全限制和混淆配置工具的漏洞。 他编写的服务器为其他领先的 Web 服务器中的所有常规措施添加了许...阅读全文

博文 2018-05-02 09:27:32 debian.cn

GitHub 发布10月21日系统故障分析报告

GitHub 刚刚通过官方博客发布了 21 日“挂掉”的事件分析。GitHub 指出此次事件发生的原因是在 10 月 21 日 22:52 UTC 进行日常维护——更换发生故障的 100G 光学设备时导致美国东海岸网络中心与美国东海岸数据中心之间的连接断开。 更具体地,GitHub 分析,虽然两地的连接在 43 秒内恢复,但这次短暂的中断引发了一系列事件,这才导致了长达 24 小时 11 分钟的服务降级。 为了大规模提高性能,GitHub 的应用程序将直接写入每个群集的相关主数据库,但在绝大多数情况下将取请求委派给副本服务器的子集。GitHub 使用 Orchestrator 来管理 MySQL 集群拓扑并处理自动故障转移,Orchestrator 在此过程中考虑了许多变量,并在...阅读全文

2022年云原生服务网格展露的五大趋势

近日,OSCHINA 和 Gitee 联合发布了《2022 中国开源开发者报告》。其中,云原生社区创始人宋净超在报告中对开源云原生服务网格领域进行了深入,以下为主要观点。2022 云原生服务网格五大趋势2022 年,云原生展露了一些趋势。因我更多地关注服务网格领域,在此就该方向谈谈我的观点,欢迎其他专家交流。一是 零信任的云原生安全备受关注。CNCF 在《云原生安全白皮书》中指出,“我们需要在应用安全生命周期中采用更自动化和安全的架构设计(如零信任)”,这表明云原生安全越来越受重视。零信任安全意味着默认情况下,网络内外都不信任任何人,并且要对试图访问网络资源的每一个人进行验证。部署服务网格有助于缩小云原生部署的攻击面,并为构建零信任应用网络提供关键框架。二是 API 网关与服务网格融合...阅读全文

ChaosMesh 的基本功能有哪些

Chaos Mesh 的基本功能,包括故障注入、混沌实验场景、可视化操作、安全保障。故障注入​故障注入是混沌实验的核心。Chaos Mesh 充分考虑分布式系统可能出现的故障,提供全面、细粒度的故障类型,分为基础资源类型故障、平台类型故障和应用层故障三大类。基础资源类型故障:PodChaos:模拟 Pod 故障,例如 Pod 节点重启、Pod 持续不可用,以及特定 Pod 中的某些容器故障。NetworkChaos:模拟网络故障,例如网络延迟、网络丢包、包乱序、各类网络分区。DNSChaos:模拟 DNS 故障,例如 DNS 域名析失败、返回错误 IP 地址。HTTPChaos:模拟 HTTP 通信故障,例如 HTTP 通信延迟。StressChaos:模拟 CPU 抢占或内存抢占场景...阅读全文

在 Mac OS X 上安装 Nessus 10

在 macOS 上安装 Nessus 10 macOS安装Nessus一、下载二、 安装三、初始化登录四、 安装插件和创建配置文件五、重启服务编译插件六、验证七、如何更新插件 macOS安装Nessus 修复部分破方法在安装Nessus10重启之后重置授权问题。 一、下载 下载 macOS:https://sysin.org/blog/macOS/ 下载 Nessus:https://sysin.org/blog/nessus-10/ 或者链接:https://pan.baidu.com/s/1DrkX1nbysFgdmbO4657JIg?pwd=9jxl 提取码:9jxl 下载插件: 插件版本202301231642 链接:https://pan.baidu.com/s...阅读全文

互联网协议正在发生变化

当上世纪九十年代互联网开始被广泛使用的时候,其大部分的通讯只使用几个协议:IPv4 协议路由这些数据包,TCP 协议转发这些包到连接上,SSL(及后来的 TLS)协议加密连接,DNS 协议命名那些所要连接的主机,而 HTTP 协议是最常用的应用程序协议。 多年以来,这些核心的互联网协议的变化几乎是微乎其微的;HTTP 增加了几个新的报文头和请求方式,TLS 缓慢地进行了一点小修改,TCP 调整了拥塞控制,而 DNS 引入了像 DNSSEC 这样的特性。这些协议看起来很长时间都一成不变(除了已经引起网络运营商们的大量关注的 IPv6)。 因此,希望了(甚至有时控制)互联网的网络运营商、供应商和决策者对这些协议采用的做法是基于其原有工作方式 —— 无论是打算调试问题,提高服务质量,或施加政策...阅读全文

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

无论你是刚接触Ubuntu,还是最近从微软Windows改用Ubuntu,都会在下文中找到适合你的一款软件。并非所有的应用程序对每个人都有用,欢迎分享你认为最出色的Linux应用程序。 有者常常问我们必不可少的Ubuntu应用程序有哪些,本文我将逐一介绍21款对Ubuntu来说必不可少的应用程序,而不是仅仅在留言区回复。 无论你是刚接触Ubuntu,还是最近从微软Windows改用Ubuntu,都会在下文中找到适合你的一款软件。并非所有的应用程序对每个人都有用,欢迎分享你认为最出色的Linux应用程序。 我们不会介绍默认情况下随Ubuntu交付的任何软件,比如火狐、LibreOffice、Thunderbird和Transmission等,可能的话,重点介绍不需要为它添加PPA的软件...阅读全文

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

7大维度看国外企业为啥选择gRPC打造高性能微服务

架来兼容这种环境。 开发工具 - 在实现框架时,提供尽可能小的摩擦将会使开发人员更快捷。哪些工具可以帮助编码,本地测试端点,以及单元和集成测试的stubbing/mocking?当事情出错时,我们需要能够看到包括内容在内的请求信息。消息格式等因素也可以使调试更容易依赖于工具,例如JSON消息是人可的,但是二进制消息将需要额外的努力来码。 成熟度和采用 - 对于初创公司来说,资源是有限的,需要花费在公司的核心业务上,而不是修复,测试和增强第三方框架。诸如框架的普及,大规模使用的例子,社区的活跃程度以及框架本身的成熟度等因素都是稳定性的良好指标。需要强调的是,选择一个决具体问题的框架,而并非选择最新最热的。 多平台支持 - 在真正的微服务思维中,使用最适合其目的的语言编写企业的服务,目前包...阅读全文

博文 2018-03-19 17:51:32 debian.cn