InfraPub 为您找到相关结果 72

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

在以前,很多从其他语言转过来 Go 语言的同学会问到,或是踩到一个坑。就是以为 Go 语言所打包的二进制文件中会包含配置文件的联同编译和打包。 结果往往一把二进制文件挪来挪去,就无法把应用程序运行起来了。因为无法到静态文件的资源。 无法将静态资源编译打包进二进制文件的话,通常会有两种解决方法: 第一种是识别这类静态资源,是否需要跟着程序走。第二种就是考虑将其打包进二进制文件中。 第二种情况的话,Go 以前是不支持的,大家就会去借助各种花式的开源库,例如:go-bindata/go-bindata 来实现。 但从在 Go1.16 起,Go 语言自身正式支持了该项特性,今天我们将通过这篇文章快速了解和学习这项特性。 基本使用 演示代码: import _ "embed...阅读全文

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

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

SK海力士今天正式发布了最新款的企业级SSD PE8000系列,包括PE8010、PE8030、PE8111三款型号,这也是其首款PCIe 4.0 SSD,无论存储密度、容量还是性能都是世界一流的,甚至是超一流的。 PE8010、PE8030都配备了SK海力士自产的96层堆叠4D TLC NAND闪存颗粒,搭配自研主控,最大容量8TB,兼容U.2、U.3接口,其中PE8010面向密集型应用,PE8030则为读写混合应用而优化。 性能方面,持续读写速度最高均可达8.3GB/s、3.7GB/s,随机读写速度最高则可达1100K IOPS、320K IOPS。 相比于去年的上代产品,持续性能提升103%,随机写入性能提升357%,另外最大功耗为17W。 PE8111则是针对密集型负载...阅读全文

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

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

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

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

Golang channel 通道常见使用场景

(intChan) //写完后关闭管道 } func ReadData(intChan chan int,exitChan chan bool) { for{ v,ok:=<-intChan if !ok{ fmt.Println("完毕") break } fmt.Println("读:",v) } //设置全局标志 告诉main 完毕了 main主线程可以关闭了 exitChan<-true close(exitChan) } func main() { intChan :=make(chan int,50) exitChan:=make(chan bool,1) go WriteData(intChan) go ReadData(intChan,exitChan) //阻塞主线程 for...阅读全文

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

journalctl 清理journal日志 - 九重霄

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

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

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

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

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

海盗船发布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 版本的售价未免也太高了。 作为对比,三...阅读全文

三星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

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

中的URI作为参数,创建目录。使用-p参数可以递归创建目录 put 格式 : hdfs dfs -put ... 作用 : 将单个的源文件src或者多个源文件srcs从本地文件系统拷贝到目标文件系统中(对应的路径)。也可以从标准输入中输入,写入目标文件系统中 hdfs dfs -put /rooot/bigdata.txt /dir1 moveFromLocal 格式: hdfs dfs -moveFromLocal 作用: 和put命令类似,但是源文件localsrc拷贝之后自身被删除 hdfs dfs -moveFromLocal /root/bigdata.txt / copyFromLocal 格...阅读全文

Linux Lite 宣布使用基于 Linux Kernel 4.14 的内核

系统菜单中的 Lite Tweaksv 工具,选择“Kernel Installer”功能来安装更新,同样在安装完成之后需要重启你的电脑。 Linux Kernel 4.14 LTS 的主要功能就是为 x86 硬件部署了更大的存储限制,虚拟地址空间提升至 128PiB,物理硬件空间提升至 4PiB。此外还引入了全新的 ORC unwinder 来改进内核追踪和内核尺寸。 Linux Kernel 4.14 LTS 同时为 Btrfs 和 SquashFS 文件系统引入了 zstd 压缩,能够从用户存储到 sockets 实现 zero-copy 数据,改进 SMP 的 cpufreq 协调,同步 non-blocking buffered ,以及对 PCID 指令更快的 TBL 刷新。...阅读全文

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

Git 2.26 发布:传输协议 V2 成默认协议

name-rev 功能。其他各种性能改进。 Bug 修复 Windows 的 Git 现在可以克隆到当前用户可以写入的目录中,即使他们甚至没有权限父目录。通过 Git GUI 要求输入密码时,现在可以正确处理非 ASCII 字符。git update-git-for-windows -y 现在可以完全自动化 更多详细信息可参见发布公告。...阅读全文

博文 2020-03-24 10:35:05 debian.cn

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

influxdb中数据库名 use iot_cloud #修改保留策略为周期为3天,每2小时一分片 alter retention policy rp_iot_cloud on iot_cloud duration 3d REPLICATION 1 SHARD DURATION 2h default调整为2小时一分片之后,SHR内存峰值会减少10-15g左右的占用。但是缩短分片间隔之后,influxdb会更频繁的进行内部自检及数据压缩,会造成cpu及磁盘io的消耗。所以继续考虑SHR占用较大对系统会有什么影响?应用程序在启动之后,会共享系统一些内存:堆内存(共享函数库消耗的堆空间)文件缓存(从磁盘文件进行缓存)对于共享堆内存则是必须占用的物理空间,而文件缓存则是系统针对磁盘的优化。目前...阅读全文

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

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的内存分配机制中,优先使用物...阅读全文

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

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

性的,这很关键。 logpipe 概念朴实、使用方便、配置简练,没有如 sink 等一大堆新名词。 logpipe 由若干个 input、事件总线和若干个 output 组成。启动 logpipe 管理进程 (monitor),派生一个工作进程 (worker),监控工作进程崩溃则重启工作进程。工作进程装载配置加载若干个 input 插件和若干个 output 插件,进入事件循环,任一 input 插件产生消息后输出给所有 output 插件。 logpipe 自带了几个插件,分别是: logpipe-input-file 用 inotify 异步实时监控日志目录,一旦有文件新建或文件增长事件发生(注意:不是周期性轮询文件修改时间和大小),立即捕获文件名和文件追加数据。该插件拥有文件大小...阅读全文

网易云音乐Linux版v1.1发布 支持 Debian Stretch

时隔近一年半的时间,网易云音乐 Linux 版本终于迎来了更新,本次更新除了迁移到QCEF框架,对GNOME、KDE桌面环境支持更好,支持最新 Debian 9、Ubuntu 17.10版本(仅64位),还优化和修复各个社区用户反馈的问题。 具体的细节优化如下: 迁移全新的QCEF框架; 使用了全新的播放器后端; 支持打开更多格式的本地文件; 优化播放时内存占用资源问题; 优化扫描本地音乐目录,支持下载任务的状态; 优化第三方字体的支持; 优化淡入淡出效果和在线播放; 优化更好的支持Wayland环境; 移除了沙盒机制; 修复部分本地音乐播放存在卡顿的问题; 修复Tooltip位置偏移的问题; 修复在Qt 5.9中界面乱码的问题; 修复GPU加速选项无效的问题; 修复无法捕获本地目录变...阅读全文

博文 2017-12-02 18:34:00 debian.cn

OpenSSL 1.1.1 LTS 版本发布,支持 TLS v1.3

free operation 支持各种新的加密算法,包括: SHA3 SHA512/224 and SHA512/256 EdDSA (including Ed25519 and Ed448) X448 (adding to the existing X25519 support in 1.1.0) Multi-prime RSA SM2 SM3 SM4 SipHash ARIA (including TLS support) 旁路攻击安全性改进 Maximum Fragment Length TLS 扩展支持 新增 STORE 模块,它实现了一个规格一致的基于 URI 的存储器,可包含密钥、证书、CRL 和许多其他对象。 更多细节可查阅发行说明: https...阅读全文

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

BFQ I / O调度程序的性能改进。 Linux Kernel 5.2还为cgroups v2添加了一个冷冻控制器以释放资源,部署了新设备隐射“dust”目标来模拟失败或者扇区失败的设备,为 clone(2)添加了CLONE_PIDFD这个Flag从而在创建进程时候获取PID,能够通过pidfd_send_signal(2)使用,并在Android系统中提供了更高的资源监控。 在安全方面,Linux Kernel 5.2附带了一个全新的CPU BUG框架,用于保护设备免受英特尔MDS(微架构数据采样)硬件漏洞的影响,同时还有一个名为“mitigations=”独立于架构的启动选项,以便更容易启用或禁用缓解CPU缺陷。 Linux内核5.2还包括许多更新的和新的驱动程序,以获得更好的硬件支持...阅读全文

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

Prometheus 2.13.0 发布

] Service discovery:为 kubernetes 添加新的节点地址类型 #5902[ENHANCEMENT] UI:如果查询返回了一些警告,则显示警告 #5964[ENHANCEMENT] Remote write:减少系列缓存的内存使用量 #5849[ENHANCEMENT] Remote read:使用远程流传输以减少内存使用量 #5703[ENHANCEMENT] Metrics:添加了将远程最大/最小/所需分片写入队列管理器的指标 #5787[ENHANCEMENT] Promtool:在标签查询期间显示警告 #5924[ENHANCEMENT] Promtool:改进了解析错误规则时的错误消息 #5965[ENHANCEMENT] Promtool:更多提示规则 #5515...阅读全文

Debian 将支持从 F2FS 根文件系统进行系统引导

不少用户希望通过将 Flash-Friendly File-System (F2FS) 作为根文件系统来启动和运行 Debian,现在这个目标将有望达成了。尽管 F2FS 早已问世,并且得到了越来越多的采用,尤其是在 Android 移动设备上,但默认情况下,大多数 Linux 发行版都不允许默认从 F2FS 文件系统进行引导。 不过事情现在迎来了转机,GRUB 2.04 在其 2019 年中期发布的版本中提供了 F2FS 支持。 更新后的 GRUB 能够支持 F2FS 根文件系统,而且这种支持也一直在向 Linux 发行版中扩散,当然还需要启用相关模块(F2FS 模块)才能使用。对于 Debian 而言,他们本周最终将 F2FS 模块添加到了已签名的 UEFI 映像中。 从 F2FS...阅读全文

博文 2020-01-13 13:36:55 debian.cn

Go 1.16 发布,支持 macOS ARM64

/mips64)上支持 MIPS64 体系架构,但尚不支持 cgo - 放弃了对 x87 模式编译(GO386=387)的支持。现在可以使用软浮点模式(GO386=softfloat)来支持非 SSE2 处理器 - linux/riscv64 现在支持 cgo 和 -buildmode=pie - GO111MODULE 环境变量现在默认为 on。可通过将 GO111MODULE 设置为 auto 切换回旧行为 - go 命令现在支持使用新的 //go:embed 指令来将静态文件和文件树作为最终可执行文件的一部分包含在内 - 新的 runtime/metrics 包引入了一个稳定的接口,用于从 Go 运行时中实现定义的指标 - 现在将 GODEBUG 环境变量设置为 inittrace=1 会导致...阅读全文

博文 2021-02-17 08:58:12 joseph

使用 imagemagick 的 convert 命令处理图片

$convert image.png -define png:format=png32 newimage.png 10,文字注释 $convert image.png -draw "text 0,20 'some text'" newimage.png 从文件text.txt中文字,指定颜色,字体,大小,位置: $convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg 11,去掉边框 $convert image.png -trim -fuzz 10% newimage.png...阅读全文

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

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

中心解耦,增加对 Apollo 等第三方专业配置中心的支持,更易于扩展新增应用级别的动态配置规则规则体使用更易读、易用 YAML 格式外部化配置。支持托管在远程的集中式配置中心的 dubbo.properties,实现应用配置的集中式管控。更精炼的注册中心 URL,进一步减轻注册中心存储和同步压力,初步实现地址和配置的职责分离。新增服务元数据中心,负责存储包括服务静态化配置、服务定义(如方法签名)等数据,默认提供 Zookeeper, Redis 支持。此功能也是 OPS 实现服务测试、Mock 等治理能力的基础。异步编程模式增强(限定于 Dubbo 协议)原生 CompletableFuture 签名接口支持服务端异步支持异步 Filter 链新增 Protobuf 序列化协议扩展新增...阅读全文

博文 2019-01-18 09:43:16 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

单核心 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

Golang后端面试题目

技术一面 基础面试 一面是通过电话直接沟通。 go的调度go struct能不能比较go defer(for defer)select可以用于什么context包的用途client如何实现长连接主协程如何等其余协程完再操作slice,len,cap,共享,扩容map如何顺序实现set实现消息队列(多生产者,多消费者)大文件排序基本排序,哪些是稳定的http get跟headhttp 401,403http keep-alivehttp能不能一次连接多次请求,不等后端返回tcp与udp区别,udp优点,适用场景time-wait的作用数据库如何建索引孤儿进程,僵尸进程死锁条件,如何避免linux命令,查看端口占用,cpu负载,内存占用,如何发送信号给一个进程git文件版本,使用顺序...阅读全文

博文 2020-04-13 13:13:00 2020腾讯社招

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

协议介绍之深入了解 gRPC

HTTP header。HTTP header 各个 fields 使用 \r\n 分隔,然后跟 body 之间使用 \r\n\r\n 分隔。解析完 header 之后,我们才能从 header 里面的 content-length 拿到 body 的 size,从而 body。 这套流程其实并不高效,因为我们需要多次,才能将一个完整的 HTTP 请求给解析出来,虽然在代码实现上面,有很多优化方式,譬如: 一次将一大块数据到 buffer 里面避免多次 IO read 的时候直接匹配 \r\n 的方式流式解析 但上面的方式对于高性能服务来说,终归还是会有开销。其实最主要的问题在于,HTTP/1.x 的协议是 文本协议,是给人看的,对机器不友好,如果要对机器友好,二进制协议才是更好的...阅读全文

博文 2017-06-22 11:08:48 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系统

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

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

分布式 NewSQL 数据库 TiDB

时,进行 rename table 时潜在的问题修复多数据路径配置下进行 rename table 会导致数据丢失的问题修复某些场景下 TiFlash 存储空间上报错误的问题修复开启 Region Merge 情况下从 TiFlash 时潜在的问题ToolsTiDB Binlog修复因为 TiFlash 相关的 DDL job 导致 Drainer 同步中断的问题 #948 #942BR修复关闭 checksum 情况下,仍然执行 checksum 的问题 #223修复 TiDB 开启 auto-random 或 alter-pk 时,增量备份失败的问题 #230 #231 详细更新说明请参考官网说明,点击这里访问 TiDB 的详细文档。...阅读全文

博文 2020-04-18 22:05:02 3.1.0 发布

NVDIMM-P非易失内存标准公布:断电不丢数据、兼容DDR4

。 - 大容量:支持扩展的内存寻址功能。 - 支持即插即用:在电脑开机时可以直接插入标准的双列内存插槽,并立刻与同一总线上的DDR内存交互操作。 NVDIMM-P的主要特征: - 与现有DDR通道完全兼容,包括物理接口、电气性能、协议、时钟。 - 保证为下一代CPU插槽增加的针脚尽可能少。 - 协议支持数据时的不确定延迟。 - 确保数据在非易失内存中的事务性操作。 - 从NAND到DRAM多种延迟模式的支持(在模块级别)。 - 内存本身具备高可靠性、链路错误保护功能。 事实上,NVDIMM是一个系列标准,除了这里说的NVDIMM-P,还有NVDIMM-F、NVDIMM-N、NVDIMM-H。 NVDIMM-F本质上就是DDR接口的SSD固态盘,只使用NAND闪存,优点是延迟低(纳秒级别)、带宽高...阅读全文

系统分析工具 Sysdig 详解

繁的前10个文件:sysdig -c topfiles_bytes列出Apache进程或写入最频繁的文件:sysdig -c topfiles_bytes proc.name=httpd监听对 snoop 的系统调用:sysdig -p "%12user.name %6proc.pid %12proc.name %3fd.num %fd.typechar %fd.name" evt.type=openSee the top directories in terms of R+W disk activity:sysdig -c fdbytes_by fd.directory "fd.type=file"See the top files in terms of R+W disk...阅读全文

博文 2020-08-09 14:09:05 debian.cn

通过Prometheus查询K8S集群Pod 的CPU、内存、网络指标

口,可以以Prometheus支持的格式呈现的指标: $ curl https://IP:6443/api/v1/nodes/k8s-master01/proxy/metrics/cadvisor # HELP cadvisor_version_info A metric with a constant '1' value labeled by kernel version, OS version, docker version, cadvisor version & cadvisor revision. # TYPE cadvisor_version_info gauge cadvisor_version_info{cadvisorRevision="",cadvisorVersion...阅读全文

博文 2020-08-13 20:41:03 debian.cn

深入理解Golang之context

:= srv.newConn(rw) c.setState(c.rwc, StateNew) // before Serve can return go c.serve(ctx) } } 2、建立连接之后会基于传入的context创建一个valueCtx用于存储本地地址信息,之后在此基础上又创建了一个cancelCtx,然后开始从当前连接中网络请求,每当到一个请求则会将该cancelCtx传入,用以传递取消信号。一旦连接断开,即可发送取消信号,取消所有进行中的网络请求。func (c *conn) serve(ctx context.Context) { c.remoteAddr = c.rwc.RemoteAddr().String() ctx = context.WithValue(ctx...阅读全文

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

最全 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 使用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

你和 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...阅读全文

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

-bindata/go-bindata 这类第三方开源库来实现。 而从 Go1.16 起,通过 go:embed 就可以快速实现这个功能: import _ "embed" //go:embed hello.txt var s string print(s) 通过对变量 s 声明 go:embed 指令,使其在编译时当前目录下的 hello.txt 文件。 最终变量 s 就会输出 hello.txt 文件中的字符串内容。 新增 io/fs 的支持 新增了标准库 io/fs,正式将文件系统相关的基础接口抽象到了该标准库中。 以前的话大多是在 os 标准库中,这一步抽离更进一步的抽象了文件树的接口。在后续的版本中,大家可以优先考虑使用 io/fs 标准库。 调整切片扩容策略 Go1.16 以前的...阅读全文

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

Linux 中使用 Fio 测评硬盘性能

随机读测试,我们将会尝试一个随机的 2GB 文件。 sudo fio --name=randread --ioengine=libaio --iodepth=16 --rw=randread --bs=4k --direct=0 --size=512M --numjobs=4 --runtime=240 --group_reporting 最后,我们想要展示一个简单的随机读-写测试来看一看 Fio 返回的输出类型。 读写性能测试 下述命令将会测试 USB Pen 驱动器 (/dev/sdc1) 的随机读写性能: sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test...阅读全文

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

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

(int argc,char **argv) { int err = -1; /* 返回值 */ int s = -1; /* socket描述符 */ int snd_size = 0; /* 发送缓冲区大小 */ int rcv_size = 0; /* 接收缓冲区大小 */ socklen_t optlen; /* 选项值长度 */ /* * 建立一个TCP套接字 */ s = socket(PF_INET,SOCK_STREAM,0); if( s == -1){ printf("建立套接字错误\n"); return -1; } /* * 先缓冲区设置的情况 * 获得原始发送缓冲区大小 */ optlen = sizeof(snd_size); err = getsockopt(s...阅读全文

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

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

接待了。 Port 21 而在最右侧的一个门牌号 22 的们的待遇就大为不同,居然有一只带着墨镜的小企鹅在守着,看起来好酷啊,它是黑衣人叔叔吗?为什么要这么酷的一个企鹅呢,因为 22 端口是 SSH 端口,是一个非常重要的远程连接端口,通常通过这个端口进行远程管理,所以对这个端口进来的人要仔细审查。 ssh daemon 它的身上写着 52,说明它是第 52 个小企鹅。 to fs 在图片的左上角,有一个向下台阶。这个台阶是底层(地基)的文件系统中的,进程们可以通过这个台阶,到文件系统中去文件,进行操作。 Crontab 在这一层中,有一个身上写着 217 的小企鹅,他正满头大汗地看着自己的手表。这只小企鹅就是定时任务(Crontab),他会时刻关注时间,查看是否要去做某个工作...阅读全文

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

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 软件包的 MD5

apt install debsums 现在可以了解如何使用debsums工具,来校验已安装软件包的MD5和了。 说明:我在下面的所有命令中使用了sudo,因为普通用户可能没有某些文件的权限。 此外,来自debsums命令的输出在左边显示了文件位置,在右边显示了检验结果。你会得到三种可能的结果,它们包括: OK――表明某个文件的MD5和是好的。 FAILED――表明某个文件的MD5和不匹配。 REPLACED――意味着某个特定文件已被来自另一个软件包的文件所更换。 如果你不用任何选项来运行,debsums会对照常规的md5sum文件来校验系统上的每个文件。 $ sudo debsums 扫描文件系统、寻找MD5和 /usr/bin/a11y-profile-manager-indicator...阅读全文

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

深入学习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 博客园