InfraPub 为您找到相关结果 57

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

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

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索引...阅读全文

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

k8s 中发现很多为状态为 Evicted 的 Pod

")) | "kubectl delete pods \(.metadata.name) -n \(.metadata.namespace)"' | xargs -n 1 bash -c 将Evicted状态的pod删除后,清理一波磁盘,具体操作可以查看如何清理Linux服务器磁盘空间 df -h //查看服务器空间 du -h --max-depth=1 //查看当前目录,哪个文件最大 du -sh * //查看当前目录下各文件及文件夹大小 cp /dev/null a.log //将a.log文件清除为空 最后k8s上的服务显示正常了。...阅读全文

博文 2021-03-05 08:34:20 diablo4

U盘启动的 UEFI 版和装机版有什么区别

为普遍的方式,需要通过BIOS设置U盘启动来进入PE,适合2012以前的老机器。 特点: 1.启动稳定进入菜单 2.的空间小。 3.功能强大可靠,支持的主板比较多! 假如不要求太高就是做个u盘保驾护航建议装机版。要是专业的维护人员,建议用双版合一的。也就是说有些U盘启动盘制作工具是装机版+uefi二合一的版本,当然的U盘空间也会大一些,适合比较专业的经常装电脑的朋友使用。...阅读全文

博文 2014-04-25 10:08:57 debian.cn

Kafka 常用命令行工具

个主题 kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 3 --topic infras_cn # 启动一个生产者 kafka-console-producer.sh --broker-list localhost:9092 --topic infras_cn # 启动一个消费者组(3个成员),会三个终端 kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic infras_cn --group infras_cn-group kafka-console...阅读全文

Linux 中 journal 占用大量磁盘空间,如何清理 journal 日志?

使用df -h检查磁盘文件,看到 journal 日志了数G空间, ~:/var/log/journal/4211ff3f594041f3966d836585a11a05# journalctl --disk-usage Archived and active journals take up 6.4G in the file system. 清理方法可以采用按照日期清理,或者按照允许保留的容量清理 ``` journalctl --vacuum-time=2d journalctl --vacuum-size=500M ``` 参考阅读: https://debian.cn/articles/746...阅读全文

三个简单而优秀的 Linux 网络监视器

你可以通过 iftop、Nethogs 和 vnstat 这三个 Linux 网络命令,了解有关你网络连接的大量信息。iftop 通过进程号跟踪网络连接,Nethogs 可以快速显示哪个在你的带宽,而 vnstat 作为一个很好的轻量级守护进程运行,可以随时随地记录你的使用情况。 iftop iftop 监听你指定的网络接口,并以 top 的形式展示连接。 这是一个很好的小工具,用于快速识别、测量速度,并保持网络流量的总体运行。看到我们使用了多少带宽是非常令人惊讶的,特别是对于我们这些还记得使用电话线、调制解调器、让人尖叫的 Kbit 速度和真实的实时波特率的老年人来说。我们很久以前就放弃了波特率,转而使用比特率。波特率测量信号变化,有时与比特率相同,但大多数情况下不是。 如果你只...阅读全文

博文 2017-11-07 00:07:38 debian.cn

Linux系统诊断-内存基础

谈及linux内存,很多时候,我们会关注free,top等基础命令。当系统遇到异常情况时,内存问题的根因追溯,现场诊断时,缺乏深层次的debug能力。本篇幅不做深层讨论,能把当前系统的问题描述清楚,是每个SRE应该具备的最基础能力。free========2.1 free命令原理free是通过查看 /proc/meminfo 来获取内存的使用情况。但是 /proc/meminfo 这个文件又是怎么来的?我们先了解下 /proc 目录:/proc 是一个虚拟文件系统,该目录下的所有文件都是伪文件,该类文件只存在于内存中,并不空间——使用 du -sh 即可验证,该模具路下的磁盘都是0。/proc 下的所有文件都是内核调用proc_create() 接口来创建的虚拟条目。/proc 中...阅读全文

博文 2021-02-11 14:22:42 SegmentFault 思否

解决 Debian 开机中 networking 大量耗时的问题

首先查看哪些服务了开机时间: `systemd-analyze blame` 本文示例中发现 networking.service 的时间长达 5 分钟。查看该服务状态可发现如下错误: ``` systemd[1]: networking.service: Start operation timed out. Terminating. systemd[1]: networking.service: Main process exited, code=killed, status=15/TERM systemd[1]: networking.service: Failed with result 'timeout'. systemd[1]: Failed to...阅读全文

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腾讯社招

理解 Linux 的虚拟内存

都是你的,随便用,管够。可事实上呢,操作系统只是给它们画了个大饼,这些内存说是都给了 P1 和 P2,实际上只给了它们一个序号而已。只有当 P1 和 P2 真正开始使用这些内存时,系统才开始使用辗转挪移,拼凑出各个块给进程用,P2 以为自己在用 A 内存,实际上已经被系统悄悄重定向到真正的 B 去了,甚至,当 P1 和 P2 共用了 C 内存,他们也不知道。 操作系统的这种欺骗进程的手段,就是虚拟内存。对 P1 和 P2 等进程来说,它们都以为自己了整个内存,而自己使用的物理内存的哪段地址,它们并不知道也无需关心。 分页和页表 虚拟内存是操作系统里的概念,对操作系统来说,虚拟内存就是一张张的对照表,P1 获取 A 内存里的数据时应该去物理内存的 A 地址找,而找 B 内存里的数据应该去物...阅读全文

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

英特尔发布P4500数据中心SSD新品:外形12英寸 容量32TB

英特尔刚刚发布了迄今为止最为密集的 SSD 产品,它就是面向数据中心应用的 P4500 。为了将 32TB 的容量纳入单块 SSD,尽管其身材依然纤薄(宽高 1.5×0.3 英寸 / 3.8×0.8 厘米),但长度已经达到了丧心病狂的 12 英寸(30.5 厘米)。存储颗粒方面,其选用了 64 层堆叠的 3D NAND 架构。不过英特尔表示,它只需一半的气流,即可满足运行时的散热需求。 Intel P4500 是当前最密集的 SSD,将 32TB 容量纳入 12 英寸“标尺”外形。32 组 P4500 SSD 可纳入一个标准服务器插槽,总容量达到 1PB(1024TB)。 这些 3D NAND SSD 的功耗只有 1PB SATA 机械硬盘的 10%,空间更是只有 5% 。对于 IBM...阅读全文

博文 2018-08-09 13:24:47 debian.cn

MX Linux 17 Beta 1 发布,基于 Debian 的发行版

MX Linux 是基于 Debian 稳定分支的面向桌面的 Linux 发行,它是 antiX 及早先的 MEPIS Linux 社区合作的产物。它采用 Xfce 作为缺省桌面,是一份中量级操作系统,并被设计为优雅而高效的桌面与如下特性的结合:配置简单、高度稳定、性能可靠、空间不大也不小。 MX-17 Beta 1 镜像现在可供下载和测试。 Beta 1 具有以下功能: antiX 项目的最新实时系统更改和修复; Debian(Stretch)的最新更新; 4.9.0-4 内核(alphas 特性 4.9.0-3); 32 位 ISO 有 PAE 内核,而非 PAE; 更新软件包,包括 LibreOffice 5.4.1 的更新和 mx-apps; mx-tweak 替换了 mx...阅读全文

博文 2017-11-07 10:19:49 debian.cn

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

Git 2.26 现已发布,项目贡献者 Taylor Blau 介绍了此版本带来的一些特性上的亮点,包括将传输协议 V2(第二版) 作为默认协议 、一些新的配置技巧以及更新到 git sparse-checkout。 该版本具体更新内容如下: Changes 传输协议V2(第二版)已成为默认协议。继续准备最终对象名称将使用 SHA-256 哈希的工作。继续致力于改进不同子命令的 Bash / CLI 自动完成功能。改进的 fsmonitor-watchman hook 可避免以前版本中的 race 情况。对于 CLI 着色,七种颜色现在具有更亮的颜色选项。解除了 Git 先前使用线程 grep 的限制。Git rebase 现在默认使用合并后端。较低的内存量和更好的性能 git...阅读全文

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

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

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

系统分析工具 Sysdig 详解

Sysdig 是 Sysdig Cloud 开发的主要基于Lua语言的一个开源系统分析工具。Sysdig 能从运行的系统中,获取系统状态和行为,做过滤分析,功能上超同类开源工具。Sysdig 可以看做是 strace + tcpdump + lsof + htop + iftop 以及其他系统分析工具的合集 。 此外 Sysdig 还能对容器(如docker、coreOS、LXC)进行监控。 Sysdig 也支持windows平台和mac平台。下面我们以 Linux系统为例,举例说明 Sysdig 的用法,你也可以参考官方原文。 网络 查看网络带宽最多的进程:sysdig -c topprocs_net显示主机192.168.0.1的网络传输数据 as binary:sysdig...阅读全文

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

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

,因为一个CPU一次只能执行一条指令,这种情况就是并发,系统看似能处理多任务是因为不停的切换任务,但因为时间非常短,所以在我们的感官来说就是同时进行的。而计算机系统真实的并行是随着多核CPU的出现才有的。 临界区临界区表示公共资源或是共享数据,可以被多个线程使用。但是每次只能有一个线程使用它,一旦临界区的资源被,其他线程就必须等到资源释放后才能继续使用该资源。在Java程序开发中,对于这样的资源一般都需要做同步的操作,例如下面的这段代码,用的就是synchronized关键字来对临界区资源进行同步。 public class SyncTest implements Runnable { //临界区资源 public static SyncTest instance = new...阅读全文

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

Debian 向社区发出邀请 请求测试 Debian 10 Buster 安装镜像

Debian项目团队已经向社区用户发出邀请,请求帮助测试即将推出的Debian GNU/Linux 10 “Buster”。该发行版本计划于2019年7月6日周六正式发布,整个开发阶段已经持续数年时间,相比Debian 9引入了诸多改进和新功能,努力将其打造成为非常优秀的新版本。 不过在本周晚些时候正式上线之前,Debian 项目寻求社区的力量,以反馈发现Debian GNU / Linux 10 Buster 在下载、安装和使用环节所遇到的问题,从而确保最终正式版没有错误。 Andy Simpkins在邮件列表中写道:“如果能够你的一些时间来帮助我们测试这些镜像,我们将非常感激你的帮助。请在开始测试之前检查 irc *以减少重复测试。” Debian GNU / Linux 10...阅读全文

博文 2019-07-03 16:39:51 debian.cn

SK海力士宣布HBM2E内存:带宽最高460GB/s

。 而且不同于传统DRAM必须单独封装、主板面积,HBM系列可以与GPU芯片、逻辑芯片等整合封装在一起,彼此距离可以做到仅仅几个微米,大大节省整体面积,也能保证更快的数据传输。 SK海力士是第一个搞定HBM的,时间是2013年。SK海力士未透露HBM2E何时量产出货,看样子还要等一段时间。 GPU芯片左右两侧四颗芯片就是HBM...阅读全文

nginx 1.18.0 稳定版发布

导致访问受限而引起的时序攻击(Timing Attack)。 其他一些变更: 安全方面的改进,主要是修复针对 HTTP/2 客户端可能导致过多内存消耗和 CPU 使用率升高的问题修复 nginx 在某些情况下可能过多 CPU 的问题,以及许多其他错误修复需要使用 OpenSSL 0.9.8 或更高版本 nginx 1.18.0 下载地址:http://nginx.org/en/download.html 根据 nginx 发布新版的策略,“稳定”指的是功能和更新频率,它与软件质量无关。稳定分支在其生命周期中从不接收新功能,并且通常仅接收一个或两个更新,用于修复严重的错误。另外,稳定版本通常 fork 自最新的 mainline 版本。 因此,nginx 1.18.0 fork 自最新的...阅读全文

博文 2020-04-23 09:18:27 debian.cn

如何使用 ipset 将单个国家的所有IP加入黑名单

ipset 是 iptables 的扩展,它允许你创建匹配整个地址集合的规则,而不像普通的 iptables 链只能单IP或单网段匹配。 ipset 规则中的IP地址集合存储在带索引的数据结构中,这种结构即时集合比较大也可以进行高效的查找,从而减少系统资源或网络拥塞。IPset 也具备一些新防火墙设计方法,并简化了配置。ipset 的官网:http://ipset.netfilter.org 下面我们以一个实际场景为样例,介绍如何在Debian系统中,使用 ipset 将单个国家的左右 IP段 加入黑名单。 #### 准备工作:安装 ipset、或者网段列表 sudo apt-get -y install ipset wget -P . http://www.ipdeny.com...阅读全文

博文 2021-02-06 16:43:47 joseph

Harbor 1.9 发布:新增多项企业级功能

的数据并对其所含信息采取相应的操作。例如,您可以将 Harbor 配置为在成功推送镜像后向 Webhook 侦听器发送一个 POST 请求,从而触发 Kubernetes 应用程序的部署,以执行您的测试套件,或者仅仅更新您的 CMDB。 配额(Project Quotas) 配额有助于项目管理员对资源的使用加以控制。具体而言,您可以限制项目所含 tag 的数目,以及项目可的存储容量。您可以设置适用于所有项目的全局默认配额,也可以为个别项目设置配额以覆盖系统设置。镜像容量会根据其实际大小进行计算,并会在同时推送多个镜像时考虑所有相关镜像之间的层共享情况。配额可以与其他机制无缝协调工作,例如重新 tag、在线垃圾数据回收和保留策略,从而可始终合理管理各个工件,并且不会浪费空间。 Tag 保留...阅读全文

博文 2019-10-09 12:12:04 debian.cn

如何读懂火焰图?+ 实例讲解程序性能优化 - xuxh120

图工具就能生成 SVG 图片。 上面图片中,最顶层的函数g() CPU 时间最多。d()的宽度最大,但是它直接耗用 CPU 的部分很少。b()和c()没有直接消耗 CPU。因此,如果要调查性能问题,首先应该调查g(),其次是i()。 另外,从图中可知a()有两个分支b()和h(),这表明a()里面可能有一个条件语句,而b()分支消耗的 CPU 大大高于h()。 五、局限 两种情况下,无法画出火焰图,需要修正系统行为。 (1)调用栈不完整 当调用栈过深时,某些系统只返回前面的一部分(比如前10层)。 (2)函数名缺失 有些函数没有名字,编译器只用内存地址来表示(比如匿名函数)。 六、Node 应用的火焰图 Node 应用的火焰图就是对 Node 进程进行性能抽样,与其他应用的操作是一样的...阅读全文

博文 2022-03-11 10:05:09 博客园

即将发布的 JDK 10 有 109 项新特性,你喜欢哪些

按计划,JDK 10 将于 3 月 20 日正式发布。据前 Oracle 员工 Simon Ritter 的统计,JDK 10 总共包含 109 项新特性。当然,在最终发布前,可能还会发生变化。 新特性中最重要的,是我们之前曾报道过的 12 个 JEP : JEP 286: 局部变量的类型推断。该特性在社区讨论了很久并做了调查,可查看 JEP 286 调查结果。 JEP 296: 将 JDK 的多个代码仓库合并到一个储存库中。 JEP 304: 垃圾收集器接口。通过引入一个干净的垃圾收集器(GC)接口,改善不同垃圾收集器的源码隔离性。 JEP 307: 向 G1 引入并行 Full GC。 JEP 310: 应用类数据共享。为改善启动和空间,在现有的类数据共享(“CDS”)功能上再次拓...阅读全文

博文 2018-03-08 12:56:20 debian.cn

Java 10 正式发布:包含 109 项新特性

个干净的垃圾收集器(GC)接口,改善不同垃圾收集器的源码隔离性。 JEP 307: 向 G1 引入并行 Full GC JEP 310: 应用类数据共享。为改善启动和空间,在现有的类数据共享(“CDS”)功能上再次拓展,以允许应用类放置在共享存档中 JEP 312: 线程局部管控。允许停止单个线程,而不是只能启用或停止所有线程 JEP 313: 移除 Native-Header Generation Tool (javah) JEP 314: 额外的 Unicode 语言标签扩展。包括:cu (货币类型)、fw (每周第一天为星期几)、rg (区域覆盖)、tz (时区) 等 JEP 316: 在备用内存设备上分配堆内存。允许 HotSpot 虚拟机在备用内存设备上分配 Java 对象堆...阅读全文

博文 2018-03-21 08:35:10 debian.cn

ISTIO 1.1 正式版今日发布

global.outboundTrafficPolicy.mode 参数,用于定制 Egress 通信的缺省行为,目前的缺省值为 ALLOW_ANY,即允许全部 Egress 通信。 新增 Sidecar 资源 目前版本中,Sidecar 会包含整个网格内的服务信息,在 1.1 中,新建了 Sidecar 资源,通过对这一 CRD 的配置,不但能够限制 Sidecar 的相关服务的数量,从而降低资源,提高传播效率;还能方便的对 Sidecar 的代理行为做出更多的精细控制——例如对 Ingress 场景中的被代理端点的配置能力。 ExportTo 多个路由管理对象加入了这一字段,用于指定该资源的生效范围。 路由的区域感知能力 新增了对 AZ/Region 等的区域感知能力,降低跨区请求造成的性能损耗。 对 TCP 服务提供鉴权支持 在既有的 HTTP...阅读全文

博文 2019-03-20 12:55:59 debian.cn

gRPC 1.23.0 发布,Google高性能 RPC 框架

gRPC 1.23.0 发布了。gRPC 是 Google 开源的高性能、通用 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间。 主要更新内容如下: Core 反向移植 #19924 到 v1.23.x. (#19935)为自定义 iomgr 添加缺少的 APP 回调上下文 (#19687)将 DNS 重新解析期间的下限提高到 30 秒 (#19661)确保在 H2 的框架中至少有一个标题 (#19657)在使用 gevent 时分叉时修复段错误...阅读全文

博文 2019-08-18 18:31:20 debian.cn

Python的闭包和装饰器

回绑定变量后的函数(也即闭包),此时即便生成闭包的环境(父函数)已经释放,闭包仍然存在,这个过程很像类(父函数)生成实例(闭包),不同的是父函数只在调用时执行,执行完毕后其环境就会释放,而类则在文件执行时创建,一般程序执行完毕后作用域才释放,因此对一些需要重用的功能且不足以定义为类的行为,使用闭包会比使用类更少的资源,且更轻巧灵活,现举一例:假设我们仅仅想打印出各类动物的叫声,分别以类和闭包来实现: 可以看到输出结果是完全一样的,但显然类的实现相对繁琐,且这里只是想输出一下动物的叫声,定义一个 Animal 类未免小题大做,而且 voice 函数在执行完毕后,其作用域就已经释放,但 Animal 类及其实例 dog 的相应属性却一直贮存在内存中: 而这种对于实现该功能后,则是没有必要...阅读全文

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

journalctl 清理journal日志 - 九重霄

在CentOS 7开始使用的systemd使用了journal日志,这个日志的管理方式和以往使用syslog的方式不同,可以通过管理工具维护。 使用df -h检查磁盘文件,可以看到/run目录下有日志目录/run/log/journal,了数G空间 Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 8.5G 4.2G 4.4G 49% / tmpfs 16G 1.6G 15G 11% /run 在日志目录下有很多历史累积的日志。 检查当前journal使用磁盘量 journalctl --disk-usage 清理方法可以采用按照日期清理,或者按照允许保留的容量清理 journalctl...阅读全文

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

网易云音乐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

观点:DDR内存即将谢幕 HBM 3/4内存才是未来

这一年来有关国内公司进军内存产业的消息甚嚣尘上,紫光公司凭借原有的英飞凌、奇梦达基础在DDR3内存上已经作出了突破,小批量生产了DDR3内存,下半年还会推出更主流的DDR4内存芯片,正在努力追赶国际主流水平。但是放眼整个内存市场,DDR5内存很快就要来了,更可怕的是未来即便是DDR5内存也很可能被更新的技术淘汰。 业界已经有人提出了DDR内存将死的看法,未来需要高带宽的产品将转向HBM内存,2020年会有HBM 3内存,2024年则会有HBM 4内存,届时带宽可达8TB/s,单插槽容量可达512GB。 对于HBM内存,DIY玩家可以说也是相当熟悉了,AMD在2015年的Fury系列显卡上首次商用第一代HBM技术,超高的带宽、超低的面积彻底改变了当时的显卡设计,随后NVIDIA在...阅读全文

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

多独特的安全功能。它还使用可读的配置语法,可以在不需要 HTTP 或 CGI 专业知识的情况下使用。 Hiawatha 的优势在于其体积小巧,安全性高,易于安装。它非常适合寻求轻量级替代 Apache 的用户,他们将安全可用性,速度和性能优先于高级功能。 Cherokee Cherokee 是我们这些服务器中第三个取自美洲原住民部落的名字。这个由 Akamai Technologies 工程总监 Alvaro Lopez Ortega 于 2001 年创建,他想将模块化和轻量化设计的速度和功能结合起来。 Cherokee 已经成为一个可扩展,高性能,用户友好的 Web 服务器,具有较低的内存空间和负载平衡设施。其中包括一个称为 cherokee-admin 的基于 Web 的管理界面...阅读全文

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

轻量级发行版 Alpine Linux 介绍

Docker 镜像,Alpine 只有仅仅 5 MB 大小,并且拥有很友好的包管理机制。 Docker 官方推荐使用 Alpine 替代 Ubuntu 做为容器的基础镜像。这样会带来众多好处,镜像下载速度更快,镜像安全性提升,主机之间的切换更方便,更少磁盘空间等。 下表是官方容器镜像的大小对比: REPOSITORY TAG IMAGE ID VIRTUAL SIZE alpine latest 4e38e38c8ce0 4.799 MB debian latest 4d6ce913b130 84.98 MB ubuntu latest b39b81afc8ca 188.3 MB centos latest 8efe422e6104 210 MB 获取并使用官方镜像 由于镜像很小,下载时间往往很短...阅读全文

博文 2018-06-16 13:48:00 debian.cn

Golang 之禅: 如何写优质代码

。 明确处理错误 健壮的程序其实是由处理故障案例的片段组成的,并且需要在故障出现之前处理好。冗余的if err != nil { return err }比出了故障再一个个去处理更有价值。panic 和 recover 也一样。 尽早 return,不要深陷 每次缩进时都会在程序员的堆栈中添加另一个先决条件,这会他们短期内存中的 7±2 个片段。避免需要深层缩进的控制流。与其深入嵌套,不如使用守卫子句将成功路径保持在左侧。 并发权留给调用者 让调用者选择是否要异步运行你的库或函数,不要强制他们使用异步。 在启动 goroutine 之前,要知道它什么时候会停止 goroutines 拥有资源、锁、变量与内存等,释放这些资源的可靠方法是停止 goroutine。 避免包级别的状态 要完成明确和...阅读全文

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

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

with the `H' inter-active command. Also for multi-processor environments, if Irix mode is Off, top will operate in Solaris mode where a task's cpu usage will be divided by the total number of CPUs. You toggle Irix/Solaris modes with the `I' interactive command. 即在过去的一段时间里进程的CPU时间与CPU总时间的比率,如果有多个CPU或者多核,需要将每个CPU的时间相加。kubelet中的cadvisor采集的指标与含义,见...阅读全文

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

Linux 进程 PID 编号最大为多少

文件的默认值32768,与早期内核的PID范围相同。 在32位系统中,32768是pid_max的最大值。64位系统,pid_max最大可达2^22。(PID_MAX_LIMIT,约4亿)。 到达极限的情况: 1、当 PID 达到上限后,内核会从 0 重新开始寻找可用的 PID 并分配。 2、而所有 PID 均已被的话,则将抛出 fork failed: Resource temporarily unavailable 提问者所说的最大值应该只是发行版设置( CentOS 8.0 64 位上为 400w 左右)。通过上述Linux手册中的说明,我们也可以通过修改 /proc/sys/kernel/pid_max 的值来调整 pid 取值范围。 在 Debian 10 的机器上,这个文件的...阅读全文

博文 2021-01-12 11:47:15 debian.cn

Linux下多线程程序为什么消耗大量虚拟内存

最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。 探索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧合,为了证明我的观点,首先,我使用了valgrind。 valgrind --leak-check=full --track-fds=yes --log-file=./AuthServer.vlog & 然后启动测试...阅读全文

博文 2015-01-28 10:35:39 debian.cn

百度运维工程师挖矿实录:四个月用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

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

CPU,由于它是单线程作业所以很容易跑满一个逻辑CPU,可以使用redis代理或者是分布式方案来提升redis的CPU使用率。 3.存储的Key一定要设置超时时间 如果应用将Redis定位为缓存Cache使用,对于存放的Key一定要设置超时时间!因为若不设置,这些Key会一直内存不释放,造成极大的浪费,而且随着时间的推移会导致内存越来越大,直到达到服务器内存上限!另外Key的超时长短要根据业务综合评估,而不是越长越好! 4.对于必须要存储的大文本数据一定要压缩后存储 对于大文本【+超过500字节】写入到Redis时,一定要压缩后存储!大文本数据存入Redis,除了带来极大的内存外,在访问量高时,很容易就会将网卡流量占满,进而造成整个服务器上的所有服务不可用,并引发雪崩效应,造成各个系...阅读全文

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

HAProxy用法详解 最详细中文文档

处理部分流量同时又不修改服务器的地址成为可能。 性能 HAProxy借助于OS上几种常见的技术来实现性能的最大化。 1,单进程、事件驱动模型显著降低了上下文切换的开销及内存。 2,O(1)事件检查器(event checker)允许其在高并发连接中对任何连接的任何事件实现即时探测。 3,在任何可用的情况下,单缓冲(single buffering)机制能以不复制任何数据的方式完成读写操作,这会节约大量的CPU时钟周期及内存带宽; 4,借助于Linux 2.6 (>= 2.6.27.19)上的splice()系统调用,HAProxy可以实现零复制转发(Zero-copy forwarding),在Linux 3.5及以上的OS中还可以实现零复制启动(zero-starting); 5,内存...阅读全文

博文 2014-05-10 17:14:46 debian.cn

Tmux 快速教程:快捷键和配置

Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效,比方说可以像下面这样: 需要注意的是,这里是在我本地使用 tmux,最好在远程主机也安装 tmux,这样就只需要连接一次。 Hello World 前面提到的窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看。其他的功能还有: 窗口切换,每个窗口里还可以分割面板 配置方便,可以使用脚本 类似 vim 的双层操...阅读全文

博文 2017-11-07 15:17:49 debian.cn

APISIX Ingress 如何使用 Cert Manager 管理证书

Apache APISIX Ingress Controller 是一款以 Apache APISIX 作为数据面的 Kubernetes Ingress Controller 开源工具,目前已经更新到 v1.3 版本,实现了如证书管理、负载均衡、金丝雀发布等功能。 长久以来,证书管理都不是一件简单的事情,虽然 Apache APISIX Ingress Controller 支持从 Kubernetes Secrets 资源中提取证书和私钥,并转换为 Apache APISIX 可识别的 SSL 对象,但这只是整个证书管理链中的一部分,证书的颁发、轮转、吊销逻辑依然需要管理员执行,尤其当证书数量比较多时,工作量往往并不小,因而会管理员不少的时间。 Cert Manager 是一款致力...阅读全文

博文 2023-02-09 07:38:06 中文开源技术交流社区

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

Java 进程后来变得比较空闲,被掉的内存也不会归还操作系统,从资源利用角度,这会带来某种意义上的浪费。阿里巴巴方面表示,ElasticHeap 主要用于改变这一情况。 据介绍,ElasticHeap 是一个基于 G1 GC 的动态堆弹性伸缩功能,可以有效节约 Java 进程实际物理内存。Dragonwell JDK 的 ElasticHeap 提供更敏捷有效的归还内存方式,主要有如下特点: 不依赖 Full GC 和其他 STW 暂停处理弹性堆伸缩,不增加额外 STW 开销,不影响 Java 线程服务;支持多种模式。 根据内存分配速度和 GC 压力自适应调整堆大小(自动归还内存);根据 jcmd/MXBean 命令主动式限制堆大小 (可整堆限制或分代限制); 下图是阿里巴巴电商应用在双...阅读全文

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

从 Debian 安装 Proxmox VE,并配置网络和双硬盘

no LVM-Thin images,rootdir raw no yes yes 可以看到,LVM-Thin 支持快照和克隆,但是不能共享了,没事,我不需要共享给别的节点,我没用集群。 但是添加 LVM 和 添加 LVM-Thin 的步骤都记录下。 如果是添加 LVM如果是要添加 LVM,只需要到 Datacenter - Storage点击 Add:LVM 123Base storage: Existing volumn groupsVolumn group: hddID: 随便取名 这样添加后,容量是 hdd 的容量, 2.73T , 但是会显示已经了 100G。 Usage 3.59% (100.20 GiB of 2.73 TiB) 如果是添加 LVM-Thin添加 LVM...阅读全文

博文 2021-03-01 20:20:31 驱蚊器喵的插座

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

、Hyperloglogs等。 Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据自动分片能力。 Redis的主要功能都基于单线程模型实现,也就是说Redis使用一个线程来服务所有的客户端请求,同时Redis采用了非阻塞式IO,并精细地优化各种命令的算法时间复杂度,这些信息意味着: Redis是线程安全的(因为只有一个线程),其所有操作都是原子的,不会因并发产生数据异常 Redis的速度非常快(因为使用非阻塞式IO,且大部分命令的算法时间复杂度都是O(1)) 使用高耗时的Redis命令是很危险的,会唯一的一个线程的大量处理时间,导致所有的请求都被拖慢。(例如时间复杂度为O(N)的...阅读全文

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

WebAssembly:无需容器的 Docker (上)

,实现 WASI 和 WebAssembly 应用程序的标准化。🚀 快速 —— 它可以通过大多数运行时的 JIT/AOT 能力提供类似原生的速度。 与启动 VM 或启动容器不同的是,它没有冷启动。🔒 安全 —— 默认情况下,Wasm 运行时是沙箱化的,允许安全访问内存。 基于能力的模型确保 Wasm 应用程序只能访问得到明确允许的内容。软件供应链更加安全。💼 可移植 —— 几个主要的 Wasm 运行时支持大多数 CPU(x86、ARM、RISC-V)和大多数操作系统,包括 Linux、Windows、macOS、Android、ESXi,甚至非 Posix 操作系统。🔋 高效 —— 最小的内存和最低的 CPU 门槛就能运行 Wasm 应用程序。🗣️ 支持多语言 ——40 多种编程...阅读全文

博文 2023-01-03 06:35:56 spider

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

需要观测时没有数据。eBPF 执行引擎可通过动态加载执行 eBPF 脚本来采集可观测性数据,举个具体例子,假设原本的 K8S 系统并没有做进程相关的监测,有一天发现了某个恶意进程(如挖矿程序)在疯狂地 CPU,这时候我们会发现这类恶意的进程创建应该被监测起来,这时候我们可以通过集成开源的进程事件检测库来是实现,但这往往需要打包、测试、发布这一整套流程,全部走完可能一个月就过去了。相比之下,eBPF 的方式显得更为高效快捷,由于 eBPF 支持动态地加载到内核监听进程创建的事件,所以我们可以将 eBPF 脚本抽象成一个子模块,采集客户端每次只需要加载这个子模块里的脚本完成数据采集,再通过统一的数据通道将数据推送到后端。这样我们就省去了改代码、打包、测试、发布的繁琐流程,通过无侵入的方式动态...阅读全文

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

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

个。 镜像的层就像 Git 的提交(commit)一样。Docker 的层用于保存镜像的上一版本和当前版本之间的差异。就像 Git 的提交一样,如果你与其他存储库或镜像共享它们,就会很方便。 实际上,当你向注册表请求镜像时,只是下载你尚未拥有的层。这是一种非常高效地共享镜像的方式。但额外的层并不是没有代价的。层仍然会空间,你拥有的层越多,最终的镜像就越大。Git 存储库在这方面也是类似的,存储库的大小随着层数的增加而增加,因为 Git 必须保存提交之间的所有变更。 过去,将多个 RUN 语句组合在一行命令中或许是一种很好的做法,就像上面的第一个例子那样,但在现在看来,这样做并不妥。 1. 通过 Docker 多阶段构建将多个层压缩为一个 当 Git 存储库变大时,你可以选择将历史提交记录...阅读全文

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

使用 MongoDB 之前应该知道的 14 件事

MongoDB 是一个多租户系统,它会尽可能地内存,因此最好是安装在服务器上,最大限度地提供内存,即使是开发工作。在服务器上使用默认端口安装而不启用身份验证是在自找麻烦,尤其是可以在查询中运行任意 JavaScript 时(例如把$where 作为注入攻击的载体)。 身份验证方法有多种,但是用户 ID/密码凭证最容易安装和管理。当你考虑 基于 LDAP 的身份验证 时,可以采用那个方法。在我们谈论安全时,MongoDB 必须保持最新,而且,在日志里查找未授权访问的迹象总是值得的。我不喜欢使用默认端口。 忘记限制 MongoDB 的攻击面 MongoDB 的 安全检查清单 为降低网络渗透和数据泄露风险提供了很好的建议。我们很容易会认为,开发服务器不需要高等级的安全。不是这样的:安全对于所有...阅读全文