InfraPub 为您找到相关结果 458

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

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

Go1.16 新特性:一文快速上手 Go embed

, _ := f.ReadFile("helloworld/hello2.txt") fmt.Println(string(data2)) } 同时既然能够支持目录取,也能支持贪婪模式的匹配: //go:embed helloworld/* var f embed.FS 可能会有小伙伴注意到,embed.FS 也能调各类文件系统的接口,其实本质是 embed.FS 实现了 io/fs 接口。 属性 在 embed 所提供的 FS 中,我们可以发现其都是打开和方法: type FS func (f FS) Open(name string) (fs.File, error) func (f FS) ReadDir(name string) ([]fs.DirEntry, error) func (f FS...阅读全文

博文 2021-02-17 08:44:12 CSDN

如何写好技术文档 — 来自十多年的文档经验总结

,它的价值马上就体现出来了。而写一份文档,随着时间的推移,它的价值才会逐渐体现出来。 你可能写一次文档,将来它会被阅上百次、上千次,因为一份好的文档可以在未来替你向别人回答类似下面这些问题。 1. 为什么当时是这么决策的? 2. 为什么代码是这样实现的? 3. 这个项目里都有哪些概念? 4. …… 写文档同样对于写作者也有非常大的收益: - 帮你构思规范化API: 写文档的过程也是你审视你API的过程,写文档时会让你思考你API设计是否合理,考虑是否周全。如果你没法用语言将API描述出来,那么说明你当前的API设计是不合理的。 - 文档也是代码的另一种展现: 比如你两年后回过头来看你写过的代码,如果有注释和文档,你可以很快速理解代码。 - 让你的代码看起来更专业: 我们都有个感觉,要文档...阅读全文

博文 2021-07-30 16:15:13 joseph

海盗船发布1.6TB NVMe SSD新品:采用PCIe 3.0 x4接口

海盗船(Corsair)刚刚为 Neutron NX 500 系列固态硬盘驱动器添加了 1.6TB 的新版本,其售价为 1575 美元(约 10389 RMB),折合每 GB 容量 0.98 美元。 在 ATTO 基准测试中,其持续 / 写性能分别达到了 3000MB/s 和 2800MB/s;换用 CrystalDiskMark 的话,则是 2800MB/s(取)和 1600MB/s(写入)。随机 / 写性能上,1.6TB 版本分别可达 300k 和 270k IOPS 。 不过与外媒在今年早些时候评测过的 400GB 版本相比,1.6TB 版本 NX500 NVMe SSD 的性价比反而并不高。如果官方的写数据是可以相信的,那 1.6TB 版本的售价未免也太高了。 作为对比,三...阅读全文

SK海力士进军PCIe 4.0 SSD:密度世界第一 轻松32TB

的超大容量版本,应用了世界第一的128层堆叠4D TLC NAND闪存颗粒,单颗容量1Tb(128GB),相比于上一代的512Gb颗粒需一半数量的闪存芯片就可以达成同等容量,同样数量闪存芯片则容量轻松翻番。 PE8111现有最大容量为16TB,E1.L接口形态,同时正在开发32TB版本。 它特别针对OCP(开放计算项目)存储平台而优化,持续写速度最高3.4GB/s、3.0GB/s,随机写速度最高700K IOPS、100K IOPS。 SK海力士表示,PE8010、PE8030 SSD已经向客户出样,PE8111下半年出样。...阅读全文

博文 2020-04-08 09:31:41 debian.cn

你和 Linux 高手只差了一个 LFS

很多同学都已经学习了 Linux ,可能已经在自己的机器上安装过 Linux,甚至都能搭建个简单的个人博客,也有可能编译部署过邮件服务器之类的软件,可是感觉仍然对 Linux 有点摸不着,颇有隔靴挠痒的感受。 总是好奇 Linux 内核是怎么回事,究竟里面有点什么?总是好奇 Linux 是怎么启动起来的,那个什么 GRUB 怎么知道取引导信息?总是好奇设备怎么就可以被当成文件操作,为什么可以从 /proc 到进程的信息?总是好奇如何才能构建一个操作系统,从无到有的做成一个可引导的 Linux 启动盘? 不用羡慕那些说起这些就头头是道是 Linux 极客们,其实你和他们之间是差一个 LFS 而已。 LFS 是什么? LFS(英文 Linux From Scratch 的缩写),中文释意...阅读全文

博文 2017-07-17 17:45:59 debian.cn

使用 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...阅读全文

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

海力士推新企业级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

Linux 中使用 Fio 测评硬盘性能

Linux 、FreeBSD 、NetBSD、 OpenBSD、 OS X、 OpenSolaris、 AIX、 HP-UX、 Android 以及 Windows。在这个教程,我们将使用 Ubuntu 16 ,你需要拥有这台电脑的 sudo 或 root 权限。我们将完整的进行安装和 Fio 的使用。 在 Debian 系统安装 Fio 对于 Debian 来说, Fio 已经在主仓库内。我们可以很容易的使用 apt-get 的包管理器安装。你需要简单的执行下述命令: sudo apt-get install fio 当然,你可以可以使用源代码,自己编译安装最新的版本。我们需要从 GitHub 上克隆最新的代码,安装所需的依赖,然后从源码构建应用。首先,确保我们安装了 Git , sudo...阅读全文

博文 2018-08-15 19:18:24 debian.cn

Monit:开源服务器监控工具

group是允许访问Monit的Web界面的组名称 用户 最后,可以将一些用户定义为用户可以取Monit网页,但无法访问按钮,并且无法从Web界面更改服务。 set httpd port 2812 allow admin:password allow hauk:password read-only allow @admins allow @users read-only 通过在 username:password 后使用关键字将用户设置为。在上述示例中,用户hauk被定义为用户,而admin用户具有所有访问权限。 实践 监听Nginx、php-fpm及API接口 /etc/monit.d/http # check nginx process check process...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

漫画赏析:Linux 内核到底长啥样

今天,我来为大家解一幅来自 TurnOff.us 的漫画 “InSide The Linux Kernel” 。TurnOff.us 是一个极客漫画网站,作者 Daniel Stori 画了一些非常有趣的关于编程语言、Web、云计算、Linux 相关的漫画。今天解的便是其中的一篇。 在开始,我们先来看看这幅漫画的全貌! Inside the Linux Kernel 这幅漫画是以一个房子的侧方刨面图来绘画的。使用这样的一个房子来代表 Linux 内核。 地基 作为一个房子,最重要的莫过于其地基,在这个图片里,我们也从最下面的地基开始看起: Filesystem 地基(底层)由一排排的文件柜组成,井然有序,文件柜里放置着“文件”——电脑中的文件。左上角,有一胸前挂着 421 号牌的小企...阅读全文

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

谷歌安全博客披露“ 英特尔内核漏洞 ”更多细节

去年的时候,Google 旗下 Project Zero 团队发现了一个由 CPU “ 预测执行 ” 导致的严重安全漏洞,而它也是一项被大多数现代处理器使用的性能优化方案。根据研究人员 Jann Horn 的演示,恶意攻击者可借此取不该被它访问到的系统内存。某个未经授权的一方,可能在系统内存中取到一些敏感信息,比如密码、加密密钥、或者在应用程序中打开的其它机密信息。 测试还表明,在一台虚拟机上发起的攻击,甚至能够访问到主机的物理内存。基于此,还可以获取在同一主机上、不同虚拟机的内存取访问。 该漏洞影响许多 CPU,包括来自英特尔、AMD、ARM 的芯片,以及搭配运行的设备和操作系统。在获悉这种新型攻击的第一时间,谷歌安全和产品开发团队就积极动员了起来,以保护自家系统和用户数据。 万幸...阅读全文

博文 2018-01-06 23:38:25 debian.cn

协议介绍之深入了解 gRPC

经过很长一段时间的开发,TiDB 终于发了 RC3。RC3 版本对于 TiKV 来说最重要的功能就是支持了 gRPC,也就意味着后面大家可以非常方便的使用自己喜欢的语言对接 TiKV 了。 gRPC 是基于 HTTP/2 协议的,要深刻理解 gRPC,理解下 HTTP/2 是必要的,这里先简单介绍一下 HTTP/2 相关的知识,然后在介绍下 gRPC 是如何基于 HTTP/2 构建的。 HTTP/1.x HTTP 协议可以算是现阶段 Web 上面最通用的协议了,在之前很长一段时间,很多应用都是基于 HTTP/1.x 协议,HTTP/1.x 协议是一个文本协议,可性非常好,但其实并不高效,笔者主要碰到过几个问题: Parser 如果要解析一个完整的 HTTP 请求,首先我们需要能正确的出...阅读全文

博文 2017-06-22 11:08:48 debian.cn

Linux内存buffer和cache的区别

理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序、或是取刚存取过得数据会比较快。有关linux内存机制参考: Linux 内存机制 Mem:表示物理内存统计。 -/+ buffers/cached:表示物理内存的缓存统计 Swap:表示硬盘上交换分区的使用情况。有mem被当前进程实际占用完,即没有了buffers和cache时,才会使用到swap。 Mem 行(第一行)数据说明: Total:1035108KB。表示物理内存总大小。 Used:1008984KB。表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。 Free:26124KB。表示未...阅读全文

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

如何远程升级 Debian 11 Bullseye 到 12 Bookworm

本文将介绍如何远程升级 Debian 11 Bullseye 到最新的稳定版 Debian 12 Bookworm。本升级流程简单、快速,适用于绝大部分运行在 公有云 上的主机实例。 在升级之前,建议妥善备份重要的数据,InfraPub 有一个简单的备份策略,需要一个文件列表 记录需要备份的文件及目录,即可实现快速备份, ``` ## cat /root/backup.list /var/lib/mysql /etc/mysql /var/www /etc/nginx ``` 随后使用一条命令即可备份: `tar czvf /tmp/backup.tgz --files-from /root/backup.list` 稳妥期间,备份时把数据库类的服务停一下...阅读全文

如何校验 Debian 软件包的 MD5

你有没有想过为什么安装在你系统上的某个二进制文件或软件包没有按预期的那样来运行,或者说没有按正常的方式来运行,也许它根本就无法启动。 考虑到这是维护系统上未损坏软件包的一个重要因素,因而对照存储在软件包中的信息,验证文件系统上的文件是个重要步骤,为此需要阅本文。 推荐阅:《学会如何在Linux下生成MD5校验和并使用它来校验文件?》 如何对照MD5校验和校验已安装的Debian软件包? 在Debian/Ubuntu系统上,你可以使用debsums工具来校验已安装软件包的MD5和。如果你想在安装之前知道关于debsums软件包的信息,可以使用APT-CACHE,就像这样: $ apt-cache search debsums 下一步,使用apt命令来安装它,如下所示: $ sudo...阅读全文

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

Hadoop 核心 - HDFS 分布式文件系统详解

在datanode上就应该有3个副本存在,假设存在2个副本,那么比例就是2/3=0.666。hdfs默认的副本率0.999。我们的副本率0.666明显小于0.999,因此系统会自动的复制副本到其他dataNode,使得副本率不小于0.999。如果系统中有5个副本,超过我们设定的3个副本,那么系统也会删除多于的2个副本。 在安全模式状态下,文件系统接受数据请求,而不接受删除、修改等变更请求。在,当整个系统达到安全标准时,HDFS自动离开安全模式。30s 安全模式操作命令 hdfs dfsadmin -safemode get #查看安全模式状态 hdfs dfsadmin -safemode enter #进入安全模式 hdfs dfsadmin -safemode leave #离开安...阅读全文

Google 关于 Go 2 的讨论

语化的标识符或添加二进制整型字面量”等轻微改变,因为“这些改变很容易实现”。 Cox谈到了重大变化,例如“对错误处理的额外支持,或引入不可变或值类型,添加某种形式的泛型或其他尚未被建议的重要主题。” 从Google的角度来看,Go 2的主要目标是“解决Go在可扩展性方面的重要不足”。Cox提到了生产期的扩展性(云环境中运行并发应用)和开发期的扩展性(大量的开发人员在一个较大的代码库上并行协作)。 大部分主题是介绍和解释用于修改Go的五个步骤: 有关此过程的更多详细信息,我们建议您阅博客文章Toward Go 2。有兴趣为Go 2推荐新功能的用户请参考GitHub上的关于该语言的Wiki。 查看英文原文:Google Discusses Go 2 感谢张卫滨对本文的审校。...阅读全文

博文 2017-07-20 10:03:13 debian.cn

Elastic search 6.0.0 正式发布 大量新特性

Elasticsearch 群集搜索 和以前一样,Elasticsearch 6.0 能够取在 5.x 中创建的 Indices ,但不能取在 2.x 中创建的 Indices 。不同的是,现在不必重新索引所有的旧 Indices ,你可以选择将其保留在 5.x 群集中,并使用跨群集搜索同时在 6.x 和 5.x 群集上进行搜索。 迁移助手 Kibana X-Pack 插件提供了一个简单的用户界面,可帮助重新索引旧 Indices ,以及将 Kibana、Security 和 Watcher 索引升级到 6.0 。 群集检查助手 在现有群集上运行一系列检查,以帮助在升级之前更正任何问题。 你还应该查阅弃用日志,以确保您没有使用 6.0 版中已删除的功能。 使用序列号更快地重启和还原 6.0 版本中最大的一个新特...阅读全文

博文 2017-11-15 18:11:10 debian.cn

我要彻底放弃 Debian 操作系统!-Michael Stapelberg

FTP,通过该服务接收我的包,并在响应中返回权威的决定:拒绝或接受。对于接受的包,通过一个状态页面来显示包的状态,以及可以通过镜像网络提供包的时间。包应在构建完成后,几分钟内即可进入可访问状态。 陈旧的基础设施:bug追踪 我非常害怕与Debian的bug追踪系统交互。debbugs是一款始于1994年的软件,目前仅供Debian和GNU项目使用。 Debbugs负责处理电子邮件,也就是说它的处理是异步的且很麻烦。尽管我们在Debian最快的机器上运行了Debbugs,但是它的Web界面加载速度依然非常慢。 尤其是bugs.debian.org的Web界面是的。为reportbug(1)(https://manpages.debian.org/stretch/reportbug...阅读全文

博文 2019-03-22 17:01:23 Michael Stapelberg

Dubbo 2.7.0发布 分布式RPC服务框架

Dubbo 2.7.0 发布。Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring 框架无缝集成。 据开源中国对 Dubbo 的项目负责人北纬的采访 Dubbo 重启维护一年多,现在还活着吗?,新版本的更新亮点有: Dubbo 2.7.0 添加了社区呼声很高的 异步化支持 、以及 注册中心与配置中心分离 这两个特性。与 2.6 及以前的版本相比, 异步化支持 不再局限于基于 Future 接口的异步,也不再仅仅局限于能在客户端异步。具体来说,Dubbo 2.7.0 版本全面拥抱 JDK8,在客户端开始支持基于 CompletableFuture 的异步编程范式,在服务端支持基于 AsyncContext...阅读全文

博文 2019-01-18 09:43:16 debian.cn

架构师详解 Nginx 架构

立好需要 listen 的 socket(listenfd)之后,然后再 fork 出多个 worker 进程。所有 worker 进程的 listenfd 会在新连接到来时变得可,为保证有一个进程处理该连接,所有 worker 进程在注册 listenfd 事件前抢 accept_mutex,抢到互斥锁的那个进程注册 listenfd 事件,在事件里调用 accept 接受该连接。当一个 worker 进程在 accept 这个连接之后,就开始取请求,解析请求,处理请求,产生数据后,再返回给客户端,最后才断开连接,这样一个完整的请求就是这样的了。我们可以看到,一个请求,完全由 worker 进程来处理,而且在一个 worker 进程中处理。 在 Nginx 服务器的运行过程中...阅读全文

博文 2018-05-01 23:10:47 debian.cn

使用 Go 语言的三个原因

定不是提供这些安全保障的第一个主流语言,Java(1995)可能是该冠军的竞争者。关键是,世界对不安全的编程语言没有胃口,所以人们默认认为,Go 是内存安全的。 开发人员生产力 从 20 世纪 70 年代末,开发人员的时间变得比硬件所耗费的时间更昂贵了。开发人员的生产力是一个不断扩展的话题,但它归结为这一点:你花了多少时间做有用的工作,又有多少时间等待编译器或者失望地迷失在外部代码库中。 有个笑话说 Go 是在等待 C ++ 程序编译 时开发的。快速编译是 Go 的一个重要功能,也是吸引新开发人员的关键工具。虽然编译速度仍然是一个 永久的战场 ,但公平地说,在其他语言中需要几分钟的编译,在 Go 中需要几秒钟。 Go 程序员意识到生产力的更根本的问题是代码是 为了而写的 ,所以将 代码的...阅读全文

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

高性能日志采集工具 logpipe 简单介绍

在集群化环境里,日志采集是重要基础设施。本文结合最新的 1.0.9 版,对 logpipe 做一个简单的介绍。开源主流解决方案是基于 flume-ng,但在实际使用中发现 flume-ng 存在诸多问题。 比如 flume-ng 的 spoolDir 采集器能对文件名转档后的大小不能变化的最终日志文件进行采集,不能满足采集时效性要求,如果要采集正在被不断追加的日志文件,能用 exec 采集器搭配 tail -F 命令,但 tail -F 命令又不能通配目标目录中将来新增的未知文件名。其它解决方案如 logstash 由于是 JAVA 开发,内存占用和性能都不能达到最优。 作为一个日志采集的本地代理,内存占用应该小而受控,性能应该高效,耗费 CPU 低对应用影响尽可能小,要能异步实时追踪...阅读全文

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

处,那么自linux 2.6之后新增的epoll模型,则彻底解决了性能问题,一举使得单机承受百万并发的课题变得极为容易。现在可以这么说,需要一些简单的设置更改,然后配合上epoll的性能,实现单机百万并发轻而易举。同时,由于epoll整体的优化,使得之前的几个比较耗费性能的问题不再成为羁绊,所以也成为了linux平台上进行网络通讯的首选模型。 讲解之前,还是linux man文档镇楼:linux man epoll 4类文档 linux man epoll 7类文档,俩文档结合着,会对epoll有个大概的了解。和之前提到的select和poll不同的是,此二者皆属于系统调用函数,但是epoll则不然,他是存在于内核中的数据结构,可以通过epoll_create,epoll_ctl及...阅读全文

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

2017 热门开源自动化测试框架优缺点对比

1. Robot Framework Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python 编写,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持(Windows、Linux 或 MacOS )。 优点: 通过使用关键字驱动测试(KDT)方法简化了自动化测试过程,方便测试人员创建易的测试。 测试数据语法简单易用。 生态系统丰富。由各种通用测试库和工具组成,这些工具都是作为独立项目开发的。 具有高度可扩展性。 可通过 pabot 或 Selenium Grid 执行并行测试。 缺点: 自定义 HTML 报告较为麻烦。 如果是针对大范围的库和扩展的 KDT 自动化测试,建议使用...阅读全文

博文 2017-11-15 08:52:47 debian.cn

提问的智慧 – 全文

的技术问题。 如果你是因为需要帮助正在阅本文,还想着直接从作者那取得帮助(答案),然后挥一挥衣袖转身离开,那么你就不幸成了我们所说的白痴之一。别向我们提问,我们不会理你的。我们是在这教你「如何从那些真正懂得问题答案的人那里取得帮助」的方法。不过,在99.9%的时间里我们不会是那些百事通。除非你非常地确定本文的作者是你的问题专家,否则请不要打扰,这样大家都更开心一点。 引言 在黑客[3]的世界里,你所提技术问题的解答很大程度上取决于你提问的方式与此问题的难度,本文将教你如何提问才更有可能得到满意的答复。 开源程序的应用已经很广,你通常可以从其他更有经验的用户而不是黑客那里得到解答。这是好事,因为他们更能够容忍一般的新手错误。但我们还建议你使用我们推荐的方法,像对待黑客那样对待这些有经验的用...阅读全文

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

深入学习golang — channel

var ch2 <-chan int //ch2 channel是类型相关的,也就是一个channel能传递一种类型。例如,上面的ch能传递int。 在go语言中,有4种引用类型:slice,map,channel,interface。 Slice,map,channel一般都通过make进行初始化: ci := make(chan int) // unbuffered channel of integers cj := make(chan int, 0) // unbuffered channel of integers cs := make(chan *os.File, 100) // buffered channel of pointers to Files 创建channel时...阅读全文

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

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

评审者不需要的特性,那么即使代码做了不错的设计,评审者也应该不予通过。 没有所谓的“完美”代码,有更好的代码。评审人员不应要求作者在批准前对 CL 的每一小部分过分完美。相反,评审者应该权衡向前继续开发的需求和修改建议的重要性。评审者要求的是持续性地改进,而不是追求完美的代码。CL 作为一个整体,如果它能提升系统的可维护性、可性和可理解性,那么就不要因为它还不完美而推迟数天或数周更新。 评审者应该经常留下一些评论,以表达能导致更好性能的做法。如果这些做法并不是非常重要的,那么需要加上前缀「Nit:」,从而令代码作者知道这些内容是可以忽略的。 评审指导 代码评审有一个很重要的功能,即教开发者一些开发经验,不论是语言、框架还是一般软件设计准则。留一些评论总会帮助开发者学习一些新的知识,共享知...阅读全文

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

使用 tmate 分享你的终端会话

2017 [tmate] ssh session read only: ssh ro-Jck9ufuVN89c7DPK2FFkGQMxV@sg2.tmate.io Wed Dec 6 10:27:59 2017 [tmate] web session: https://tmate.io/t/3zSi6McGj5rkeoWIKMgumWrGr Wed Dec 6 10:27:59 2017 [tmate] ssh session: ssh 3zSi6McGj5rkeoWIKMgumWrGr@sg2.tmate.io 现在,分享你的 SSH 会话 ID 给你的朋友或同事从而允许他们观看终端会话。除了 SSH 会话 ID 以外,你也可以分享 web URL。 另外你还可以选择分享的是会话还是可写会...阅读全文

博文 2017-12-06 10:33:33 debian.cn

AWS EKS 添加IAM用户角色 - SRE运维博客

的联合身份用户。如果使用不属于 aws-auth ConfigMap 的 IAM 用户或角色访问 Amazon EKS 控制台,则无法看到 Kubernetes 工作负载。也不会看到集群的概览详细信息。所以要向其他 AWS 用户或角色授予与集群交互的能力,您必须在 Kubernetes 中编辑 aws-auth ConfigMap。 因为部门有不通的角色,所以想基于不通的角色分配不同的权限,下面是记录添加一个对 EKS 权限的 AIM 用户。 {{< notice info "注意:" >}} 如果您在运行 AWS 命令行界面 (AWS CLI) 命令时遇到错误,请确保您使用的是最新版的 AWS CLI。 {{< /notice >}} 为 IAM 用户或角色配置权限 要查找具有主要...阅读全文

博文 2022-12-19 21:15:27 博客园

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

25万次P/E循环 超级长寿的SLC SSD诞生

SLC、MLC、TLC、QLC……NAND闪存类型的进化一直是个争议话题,可靠性和寿命越来越差,或者说P/E编程擦写循环次数越来越低,东芝甚至已经开始探讨PLC,不知道会渣成什么样。对于最初的SLC(每单元保存1比特数据),很多人都十分怀念,但如今已经几乎绝迹,在极少数特殊场合才能看到。 东芝正在打造可视为SLC加强版的XL-Flash,而高端固态存储厂商Greenliant最新打造的NANDrive EX系列SSD产品,更是应用了超长寿的SLC闪存。 Greenliant NANDrive EX并非消费级产品,而是面向高性能计算、工业、交通运输、视频和网络等特殊行业应用,特别是那些需要超长寿命、高可靠性的应用,能长久保持数据完整。 它采用了Greenliant自家专门设计的...阅读全文

博文 2019-08-07 23:13:00 debian.cn

RethinkDB的简单介绍

,TokyoTyrant及Schooner Membrain等。RethinkDB为各种应用压力下提供高性能和高可靠性 支持,主要应用在下面一些场景: 用来处理一些其它方案无法解决的服务负载(如:要求快速的服务启动,在数据量超出内存大小后还要有高的性能,处理各种不稳定的写压力,处理大量数据等) 提供性能与数据稳定性之间的精细调控 大大提高你的缓存层和key-value存储的性能,在你现有的硬件条件下,能支持更高的应用负载。 使用费用 RethinkDB目前提供两个版本的支持,一个免费版的,一个商用版的。商用版本的价格是每年每台机器$1500。免费版提供目前所有功能,提供后续所有安全相关的升级。但是新功能的升级保证在付费版本中保持更新,另外商用版本还提供技术支持。...阅读全文

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

Linux 5.2.1 发布 最新的稳定版内核

在 Linux 5.2 发布一周后,第一个修订版本 5.2.1 也已经发布了,用来处理各种错误/回归。需要注意的是5.2并非长期支持(LTS)分支,推荐注重稳定的用户还是使用当前的LTS内核。 5.2.1版是修改一些小小的问题,主要有以下方面: 修复 Perf减少 RTL 8712 驱动程序的堆栈使用fscrapt 将不再为 dead 目录设置策略还有一个新的文档部分,详细说明了 Spectre 的 CPU 漏洞 完整列表查看发布说明。 Linux Kernel 5.2的亮点包括Sound Open Firmware,这是一个支持DSP音频设备的开源固件。此外还新增了用于挂载文件系统的新挂载API,面向ARM Mail设备的全新开源GPU驱动,在EXT4文件系统中支持不区分大小写,以及对...阅读全文

博文 2019-07-15 10:24:57 debian.cn

journalctl 清理journal日志 - 九重霄

,此方法在 Storage=none 时无效。 此方法不能实时取日志消息, 但是可以取先前保存的日志消息(例如在系统启动完成之后取系统启动早期的日志消息)。 此方法还可以取到完整的日志元数据。 此方法一般无法取当前最新的日志消息, 取已经被记录到文件系统上的日志消息。 注意,syslog 守护进程通常使用此方法(而不是前一种方法), 因此 Storage= 选项(而不是 ForwardToSyslog= 选项) 不应该设为"none"。...阅读全文

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

为什么 Django 能持续统治 Python 开发世界

:避免重复。 Django是用Python编写的,因此其减少了太多中间层代码并突出提高了效率。Django可以支持云平台,使其成为Web开发中更受欢迎的选择。 Django主要特点 Django“自备军需”(Batteries-Included) Django基于“自备军需”的理念,您不必使用单独的库来实现常见功能,例如身份验证,URL路由,模板系统,对象关系映射器(ORM)和数据库模型迁移。 如果您正在使用或曾经用过Flask,您一定注意到了它需要调用其他库,如Flask-Login来执行用户身份验证。 Django不是这样。 自由的API 使用Django,很容易根据您的模型生成Python API。 需一个简单的命令,不需要额外的编码就足以开始生成API了。 独特的管理页面 即使在网站...阅读全文

博文 2017-07-21 14:15:11 debian.cn

DNSCrypt简明教程

-proxy/cloaking-rules.txt 这个文件,在后面添加你的DNS,例如:# my customized dns www.one-domain.com x.x.x.x *.your-domain.com x.x.x.x其实我想要方案是匹配域名,然后把这些域名的DNS指向另一个DNS,这样会方便些,不过似乎 dnscrypt-proxy 还不支持。还有一个方案就是把 fallback_resolver 改成公司所提供的DNS。更多文章socketserver 源码阅与分析functools 源码阅与分析contextlib代码阅Collections 源码阅与分析Redis通信协议阅2016年就要结束了,2017年就要开始啦!unittest 源代码阅APUEv3 - 重笔...阅读全文

博文 2021-02-06 19:55:08 知乎

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

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

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

Golang channel 通道常见使用场景

Go 的 channel 在实际项目中是怎么使用呢? channel 会有有缓冲和无缓冲两种类型,无缓冲的可以简单使用让两个 goroutine 数据同步通信。另外一种场景是对某个 object,使用 channel 作为其属性之一,那么待channel阻塞时则表明条件未满足,则需要等待其他数据结果返回。 本文列举几类常见的 channel 使用场景。 写 package main import ( "fmt" "time" ) func WriteData(intChan chan int) { for i:=1;i<=50;i++{ intChan<-i fmt.Println("写:",i) time.Sleep(time.Millisecond*100) } close...阅读全文

博文 2021-01-24 21:22:22 debian.cn

理解 Linux 的虚拟内存

,使用 sysctl vm [-options] CONFIG 或 直接写 /proc/sys/vm/ 目录下的文件来查看和修改配置。 SWAP 操作 虚拟内存的 SWAP 特性并不总是有益,放任进程不停地将数据在内存与磁盘之间大量交换会极大地占用 CPU,降低系统运行效率,所以有时候我们并不希望使用 swap。 我们可以修改 vm.swappiness=0 来设置内存尽量少使用 swap,或者干脆使用 swapoff 命令禁用掉 SWAP。 小结 虚拟内存的概念非常容易理解,但是它会衍生出来的一系列非常复杂的知识。本文讲了些基本原理,略过了很多细节,比如虚拟内存寻址中段寄存器的使用,操作系统使用虚拟内存增强缓存、缓冲区的应用等,有机会单独拿出来说。...阅读全文

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

最全 MongoDB 基础教程

回的键。查询时返回文档中所有键值, 需省略该参数即可(默认省略) # 以易的方式取数据 db.ruochen.find().pretty() 操作 格式 范例 RDBMS中的类似语句 等于 {key:value} db.ruochen.find({'by':'ruochen'}).pretty() where by = 'ruochen' 小于 {key:{$lt: value}} db.ruochen.find({'likes': {$lt:3}}).pretty() where likes < 3 小于或等于 {key:{$lte: value}} db.ruochen.find({'likes': {$lte:2}}).pretty() where likes <= 2 大于...阅读全文

博文 2021-02-22 07:45:45 OSChina

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

广告合作

本站为了长期发展的需要,使用了部分展示类的广告,在尽量不影响者阅的位置展示。这部分广告虽然收益微薄,但提供了一个可以研究广告平台的小窗口,也是件有意思的事情。我们后续会根据运营情况,决定是否移除广告。 本站的广告收入会补贴维持站点运行所需要的服务器、域名、带宽、CDN等费用。同时我们也接受广告投放、内容合作等合作方式。广告形式包括网站展示类广告、微博推广和 QQ群推广等方式,广告内容的主体需与 Debian中国 站点一致,为IT相关的话题,以不引起者反感为准。 开源项目及技术相关的公益性项目,可联系我们评估,通过后会得到 Debian中国 的免费广告投放支持。 您可以通过电子邮件 ads@debian.cn 、或者通过QQ与站点管理人员联系,或者直接通过这里联系我们。 ...阅读全文

树莓派64位系统Debian 9先行测评:性能最高提升30倍

-threads=1000 --thread-yields=1000 --thread-locks=8 run #互斥锁测试 sysbench --test=mutex --mutex-num=4096 --mutex-locks=50000 --mutex-loops=10000 run #连续写: sysbench --test=fileio --file-num=2 --file-total-size=64M --file-test-mode=seqrewr run #随机文件写: sysbench --test=fileio --file-num=2 --file-total-size=64M --file-test-mode=rndwr run #进入系统检查系统版本信息及硬件架构平台信息...阅读全文

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

Debian中文怎么读 如何正确发音

Debian 是 Debian 项目的创始人 Ian Murdock 和他的妻子 Debra 的名字缩写。值得一提的是,Debian 是第一个 Linux 发行版,它首次发布于 1993 年 9 月。 根据 Debian 的官方网站建议,它应该这样:Deb'-ee-en ,“得比恩”,重音在第一音节。“得变” 有点接近,因为是重音,deb 应该发成类似“跌”的发音。 也就是“跌扁”,“蝶变”。 这里提供两种很标准的 Debian 标准发音,供参考。 第一个发音是带西班牙口音的 Debian 发音方式(MP3文件下载): 这一个是较美式的 Debian 法(MP3文件下载):...阅读全文

博文 2018-01-02 18:36:25 debian.cn