InfraPub 为您找到相关结果 56

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

背景 在查看k8s的环境的时候,突然发现存在n多个pod状态为Evicted。差不多得有几百个。 解决 同事愉快的丢了个链接给我,让我自己看一波:What will happen to evicted pods in kubernetes? 查看了一下pod的信息。结果发现是满了。 kubectl describe pod {pode_name} -n {namespace} 但是得手动删除Evicted状态的pod kubectl get pods --all-namespaces -o json | jq '.items[] | select(.status.reason!=null) | select(.status.reason | contains("Evicted...阅读全文

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

Linux Kernel 5.12-RC1标记为dontuse 严重到会毁掉整个根文件系统

当 Torvalds 将某些代码标记为“dontuse”,通常表明这个问题比较大。在 5.12 首个候选版本更新中,破坏了交换文件(swapfile)的处理。具体来说,更新后的代码会失去指向 swapfile 开头的正确偏移。用 Torvalds 自己的话来说,“交换还是会发生,但它发生在文件系统的错误部分,最终结果显然是灾难性的”。这样 Linux 内核如果想要将内存中的内容分页到上的时候,数据就会落在相同和 swapfile 活跃的分区的随机部分上,而且这不是作为文件,而是作为垃圾直接写入到的原始扇区。这意味着不仅要覆盖现有文件中的数据,还要覆盖相当大块的元数据,这些元数据的损坏很可能会导致整个文件系统无法挂载和使用。Torvalds 继续指出,如果你根本不使用 swap...阅读全文

如何更改 Linux 的 I/O 调度器

Linux 的 I/O 调度器是一个以块式 I/O 访问存储卷的进程,有时也叫调度器。Linux I/O 调度器的工作机制是控制块设备的请求队列:确定队列中哪些 I/O 的优先级更高以及何时下发 I/O 到块设备,以此来减少寻道时间,从而提高系统的吞吐量。 目前 Linux 上有如下几种 I/O 调度算法: noop - 通常用于内存存储的设备。 cfq - 完全公平调度器。进程平均使用IO带宽。 Deadline - 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。 Anticipatory - 启发式调度,类似 Deadline 算法,但是引入预测机制提高性能。 查看设备当前的 I/O 调度器: # cat /sys/block//queue/scheduler 假设...阅读全文

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

prometheus通过node_exporter抓取的数据准确计算磁盘使用率

公司使用的openstack的备份服务组件karbor,要查询所使用的备份nas使用率的需求,根据以前的查询语句,很快写出如下的prom sql 100-topk(1,node_filesystem_free{device=~":/.*"}*100/node_filesystem_size{device=~":/.*"}) 不久后,同事过来说给出的使用率不严谨,和在系统上通过df -h的命令不一样,分别是prom:10%,df结果是11%。嘴上说着差异不大不用管,身体却很实诚,马上去主机上通过df -h查看了使用率 :/var/lib/docker/nfs 147G 15G 125G 11% /var/lib/docker/volumes/volume-nfs/_data 通过prom...阅读全文

博文 2021-01-30 20:26:49 中文开源技术社区

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 知乎

kubelet 中垃圾回收机制的设计与实现

kubernetes 中的垃圾回收机制主要有两部分组成:一是由 kube-controller-manager 中的 gc controller 自动回收 kubernetes 中被删除的对象以及其依赖的对象;二是在每个节点上需要回收已退出的容器以及当 node 上资源不足时回收已不再使用的容器镜像;本文主要分析 kubelet 中的垃圾回收机制,垃圾回收的主要目的是为了节约宿主上的资源,gc controller 的回收机制可以参考以前的文章 garbage collector controller 源码分析。kubelet 中与容器垃圾回收有关的主要有以下三个参数:--maximum-dead-containers-per-container: 表示一个 pod 最多可以保存多少个...阅读全文

博文 2021-02-05 17:48:22 知乎

服务监控系统 Prometheus 2.0 发布

服务监控系统 Prometheus 2.0 已发布,Prometheus 是一个 Go 语言开发的开源的服务监控系统和时间序列数据库。 Prometheus 2.0 有一个简单而强大的运营模式。然而,基础设施领域也没有停滞不前,像 Kubernetes 和 Mesos 这样的项目正在迅速改变软件的部署和管理方式。受监控的环境变得越来越活跃。 存储 Prometheus 2.0 有性能显着提高,几乎在所有方面都有所改进。查询延迟更加一致,特别是在高系列流失的情况下,它的规模更大。在不同的现实世界生产情景下测量的资源消耗也显着下降: 与 Prometheus1.8 相比,CPU 使用率 降低了 20% – 40% 与普 Prometheus1.8 相比, 空间使用率 降低了 33...阅读全文

博文 2017-11-09 10:44:45 debian.cn

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

如何把Debian系统中,已安装、配置的软件包导出成 *.deb 格式的安装包?

我们安装软件包后,都会做一些配置,如何把这些软件包,以及配置变动导出成一个 deb 软件包,以便下次迁移、重新安装? 使用 dpkg-repack 这个命令即可。 注意,这个命令会在**当前目录**下,生产新的软件包,务必确保当前目录下有足够的空间,一般要 2GB - 3GB, `for a in $(sudo dpkg --get-selections|cut -f1); do dpkg-repack $a|awk '{if (system("sleep .5 && exit 2") != 2) exit; print}';done` ...阅读全文

Kubernetes 1.14 发布,31 项功能增强

Kubernetes 1.14 发布了,些版本主要关注可扩展性并支持更多工作负载,带来了 30多项功能增强,其中包括从 beta 到稳定的 10 项功能。亮点包括以下几部分。 持久化本地存储 持久性本地存储的主要用例是数据库和分布式文件系统。这是一个重要里程碑,显然,本地存储的性能优于远程,无论该存储是由云提供商提供的本地 SSD 还是连接到裸机系统的。 Windows 节点的生产级支持 绝大多数企业都拥有包含 Windows 工作负载的异构环境,现在不必寻找其它协调器来管理这些 Windows 容器。Kubernetes v1.14 改进支持了 pod、服务类型、工作负载控制器和 metrics/quotas,使得与 Linux 功能相当。 PID 限制 目前处在测试阶段...阅读全文

Debian 8上安装Proxmox VE

安装Proxmox VE最好的方式是用官方ISO,刻录成光盘后安装。但是也可以用Debian官方的ISO先装操作系统,然后在 Debian 上安装Proxmox VE。具体步骤可以参考Proxmox VE官方wiki. 在 Debian Jessie 上安装 Proxmox VE 的过程如下: 使用Debian官方ISO安装操作系统。在安装过程中,使用LVM方式划分分区,并设置swap、root、data三个LV,其中swap用于交换分区,root挂载到/,data挂载到 /var/lib/vz。 安装好操作系统后,修改/etc/apt/sources.list文件,添加如下内容以设置Proxmox官方源。 deb http://download.proxmox.com/debian...阅读全文

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

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

性就是序列 ID,它允许基于操作的分片恢复。 以前,如果由于网络问题或节点重启而从集群断开连接的节点,则节点上的每个分区都必须通过将分段文件与主分片进行比较并复制任何不同的分段来重新同步。 这可能是一个漫长而昂贵的过程,甚至使节点的滚动重新启动非常缓慢。 使用序列 ID,每个分片将只能重放该分片中缺少的操作,使恢复过程更加高效。 使用排序索引更快查询 通过索引排序,只要收集到足够的命中,搜索就可以终止。它对通常用作过滤器的低基数字段(例如 age, gender, is_published)进行排序时可以更高效的搜索,因为所有潜在的匹配文档都被分组在一起。 稀疏区域改进 以前,每个列中的每个字段都预留了一个存储空间。如果只有少数文档出现很多字段,则可能会导致空间的巨大浪费。现在,你付出你...阅读全文

博文 2017-11-15 18:11:10 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 思否

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 博客园

RabbitMQ 高可用实现镜像队列

如果 RabbitMQ 集群只有一个 broker 节点,那么该节点的失效将导致整个服务临时性的不可用,并且可能会导致 message 的丢失(尤其是在非持久化 message 存储于非持久化 queue 中的时候)。可以将所有 message 都设置为持久化,并且使用持久化的 queue,但是这样仍然无法避免由于缓存导致的问题:因为 message 在发送之后和被写入并执行 fsync 之间存在一个虽然短暂但是会产生问题的时间窗。通过 publisher 的 confirm 机制能够确保客户端知道哪些 message 已经存入,尽管如此,一般不希望遇到因单点故障导致服务不可用。 如果 RabbitMQ 集群是由多个 broker 节点构成的,那么从服务的整体可用性上来讲,该集群对...阅读全文

博文 2018-12-30 19:21:59 debian.cn

Proxmox VE 5.3正式版发布

Proxmox 5.3 默认包含CephFS, 可以直接用Web界面进行配置和管理。相比之下,Proxmox 5.2 版本用 pveceph install 安装,用命令行初始化pveceph init --network网络。在Proxmox VE web管理界面,点几下鼠标就能完成文件系统的创建和配置,以前的版本需要在命令行下完成。 这次官方发布更新的点比较多,这里只挑几个重要的介绍,想详细了解的同学请参考发布记录。 管理GUI界面(ZFS, LVM, LVMthin, xfs, ext4) CephFS管理GUI界面(MDS) ZFS over iSCSI 插件支持 Linux-IO 目标(LIO Target) 支持模拟运行ARM架构虚拟机(试验特性,搞开发的同学可以体验下...阅读全文

博文 2018-12-05 15:34:51 debian.cn

RethinkDB的简单介绍

RethinkDB最早是作为一个对SSD进行专门优化的MySQL存储引擎出现的,其特点在于对SSD的充分利用。而目前RethinkDB已经脱离MySQL成为一个独立的存储。 RethinkDB目前支持几乎所有的64位Linux发行版,包括: Ubuntu 10.04.1 x86_64 Ubuntu 10.10 x86_64 Red Hat Enterprise Linux 5 x86_64 CentOS 5 x86_64 SUSE Linux 10 RethinkDB支持各种底层存储:SSD,传统以及像AWS这样的云存储服务。 RethinkDB应用场景 它可以用来替代Memcached作为数据缓存层。或者替代一些类似Memcached的存储,比如Membase,MemcacheDB...阅读全文

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

SQLite 3.30.0 发布,使用最广泛的数据库引擎

SQLite 3.30.0 发布了,SQLite 是一个 C 实现的 SQL 数据库引擎,它的特点是小型、快速、自包含、高可靠性和功能齐全。SQLite 嵌入在所有手机和大多数计算机中,也捆绑在为数众多的其它应用中,是世界上使用量最大的数据库引擎。 此版本更新内容包括: 添加对聚合函数的 FILTER 子句的支持添加对 ORDER BY 子句中的 NULLS FIRST 和 NULLS LAST 语法的支持增强了 index_info和index_xinfo 编译指示,以提供有关 WITHOUT ROWID 表在上的表示形式的信息新增 sqlite3_drop_modules() 接口,使应用程序可以禁用不需要的自动加载的虚拟表改进 CLI 中的 .recover dot...阅读全文

博文 2019-10-06 12:03:42 debian.cn

Debian10.1安装中文输入法与sogou搜狗输入法

我使用 debian-live-10.1.0-amd64-gnome.iso 安装系统。在安装时注意语言、位置和键盘类型的选择。主要是这几项, - 安装语言english - location,other,china - 键盘American English,使用全部 安装好的系统可以正常显示中文。Debian10 已经默认安装好 fcitx 与 google pinyin。我们删掉默认运行的 ibus, sudo apt remove ibus reboot # no ibus pid, have fcitx pid fcitx-configtool # add button, uncheck only show current lang, add google pinyin 这时...阅读全文

博文 2021-03-01 13:45:36 joseph

开源图数据库 Dgraph 完成 300 万融资

据 Dgraph Labs 创始人 Manish Rai Jain 在其宣布 1.0.0 版本正式发布 的 文章 中透漏,他们已完成了由贝恩资本投资公司的 Salil Deshpande 领头的 300 万融资。凭借早期在基础设施软件和开源软件方面的经验,Salil 将加入 Dgraph 董事会。Jain 表示,这一轮融资正好是我们扩大云服务的时机,并继续建立世界上最先进的图数据库。 Dgraph 是一个可扩展的,分布式的,低延迟的图数据库,于 2015 年开源,最初是出于希望消除传统关系型数据库的典型弱点而创建的。为了解决组织在数据库增长超过单个服务器时面临的一些问题,Dgraph 以更有效的方式分割数据,这使查询可以在没有通用视图的情况下执行。它还减少了网络调用和查询需要执行查询的...阅读全文

亚马逊12个月免费云服务

云服务器相当于正在使用的物理服务器,用户可以在操作系统中实时查看服务器的配置信息和当前的资源使用情况。11.备份可以用来存储我的文件吗?备份用于系统智能备份服务,主要用于灾难恢复。12.任务管理器中有多少个CPU?安装操作系统后,必须重新启动云服务器才能看到多个CPU,除非只购买了一个CPU。...阅读全文

Linux 中使用 Fio 测评硬盘性能

apt-get install git 现在,我们切换到 /opt 目录,并从 Github 上克隆仓库: cd /opt git clone https://github.com/axboe/fio 现在,我们通过在 /opt 目录下切换到 Fio 的源代码目录,执行编译和安装操作了,命令如下: # cd /opt/fio # ./configure # make # make install 使用 Fio 进行性能测试 现在 Fio 已经安装到了你的系统中,我们一起看看如何使用 Fio 做的随机写、读和读写测试。 随机写测试 执行下面的命令来开始。这个命令将要同一时间执行两个进程,写入共计 4GB( 4 个任务 x 512MB = 2GB) 文件: sudo fio --name...阅读全文

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

Kafka生产问题总结以及性能优化

都要用G1垃圾收集器,因为年轻代内存比较大,用G1可以设置GC最大停顿时间,不至于一次minor gc就花费太长时间,当然,因为像kafka,rocketmq,es这些中间件,写数据到会用到操作系统的page cache,所以JVM内存不宜分配过大,需要给操作系统的缓存留出几个G。 2.1 线上问题及优化 2.1.1 消息丢失情况 消息发送端: (1)acks=0: 表示producer不需要等待任何broker确认收到消息的回复,就可以继续发送下一条消息。性能最高,但是最容易丢消息。大数据统计报表场景,对性能要求很高,对数据丢失不敏感的情况可以用这种。 (2)acks=1: 至少要等待leader已经成功将数据写入本地log,但是不需要等待所有follower是否成功写入。就可以继续发...阅读全文

博文 2023-01-05 23:16:48 CSDN博客

Proxmox VE 6.2发布 开源虚拟机平台

VE 对所有对象(例如 VM、storage、nodes 等)使用基于角色的用户和权限管理。新的 LDAP 同步使 LDAP 用户和组同步到 Proxmox 用户和组权限框架中。添加了对 API 令牌的全面支持和集成,从而允许其他系统、软件或 API 客户端对REST API 的大部分进行无状态访问。API 令牌可以为单个用户生成,并且可以选择配置单独的权限和到期日期以限制访问的范围和持续时间。如果 API 令牌遭到破坏,则可以撤销该令牌,而不必禁用用户本身。 进一步的显着增强: QEMU/KVM:已启用对复制的实时迁移(使用 zfs 进行存储复制)的支持。由于简化了卸载过程,因此测试 Ceph 存储变得更加容易。 下载地址:https://www.proxmox.com...阅读全文

博文 2020-05-18 19:18:30 debian.cn

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

> 6.1 抽象为block块的好处 1) 一个文件有可能大于集群中任意一个 10T*3/128 = xxx块 2T,2T,2T 文件方式存—–>多个block块,这些block块属于一个文件 2) 使用块抽象而不是文件可以简化存储子系统 3) 块非常适合用于数据备份进而提供数据容错能力和可用性 6.2 块缓存 通常 DataNode 从中读取块,但对于访问频繁的文件,其对应的块可能被显示的缓存在 DataNode 的内存中,以堆外块缓存的形式存在。默认情况下,一个块仅缓存在一个DataNode的内存中,当然可以针对每个文件配置DataNode的数量。作业调度器通过在缓存块的DataNode上运行任务,可以利用块缓存的优势提高读操作的性能。 例如: 连接(join)操作中使用的一个小的查询表...阅读全文

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系统

Linux内存buffer和cache的区别

冲区,一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。 在Free命令中显示的buffer和cache,它们都是占用内存: buffer : 作为buffer cache的内存,是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk的缓冲区。 cache: 作为page cache的内存, 文件系统的cache,是memory的缓冲区 如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么的读IO 必会非常小。...阅读全文

Facebook 正式发布 JavaScript 包管理器 Yarn 1.0

冲突,可以通过手动来解决,但如果冲突数量众多,解决冲突可能会变成一件很麻烦的事情。 因此,Yarn 提供了自动合并 yarn.lock 文件的功能以解决冲突的问题。通过运行 yarn install 命令可以触发合并,如果合并成功,新的无冲突 yarn.lock 文件会被保存到上。 未来计划 Facebook 表示未来的 Yarn 将要实现下面这些目标: 使用 Yarn 发布包:发布新包通常需要创建正确的更新日志、执行正确的语义版本控制、同步相关项目的版本,还需要频繁地手动或通过脚本来完成其他很多步骤。如果 Yarn 能够为包发布者完成这些事情岂不是更好? 包的安全性:在添加新软件包或升级旧的包时,包的安全性也是一个很重要的需要考虑的因素。Yarn 将会与 npm 合作,将双因子认证带到...阅读全文

博文 2017-09-19 14:43:15 debian.cn

树莓派4上如何安装 Raspbian Buster

载好操作系统后,会得到一个zip的压缩文件。先解压,我们会用到里面的一个 .img 格式的操作系统镜像文件。文件准备好后,就可以进入下一步操作了。 在SD卡中灌入系统 这一步,我们需要下载一个软件,以便录入系统。虽然 RaspberryPi Foundation推荐使用 Etcher,但个人建议使用 Win32DiskImager,操作比较简单,录入成功率也比较高。 运行 Win32DiskImager 后,可以看到上图。打开首选的映像器,然后选择您的SD卡。通过在资源管理器中检查确认 SD卡驱动器 的名称,确保它是你的microSD卡,而不是其他驱动器。 注意:如果您不小心选择了错误的驱动器,则会丢失大量数据。 一旦你确认了SD卡的设备名,就可以选择第一步中,准备的 .img。在...阅读全文

博文 2020-02-04 19:33:29 debian.cn

LXD 3.8 发布,下一代容器管理器

LXD 服务器必须配置为监听单个 IPv4 或 IPv6 地址,同时内部集群流量和常规客户端流量都使用相同的地址。LXD 3.8 引入新的 cluster.https_address 选项作出改变,write-once 写入密钥保存用于集群通信的地址,并且无法在不必从集群中删除节点的情况下进行更改。有了这个单独的密钥,现在可以将集群节点上的常规 core.https_address 更改为任何地址,包括通配符模式,如 :8443。 集群镜像复制 集群中引入了自动镜像复制, 在 LXD 3.8 之前,镜像只会被复制到其它集群成员,虽然有利于性能、带宽和使用,但这有一个明显的缺点,即如果镜像仅出现在单个系统上并且系统脱机,那么在系统恢复之前将无法使用该镜像。 此版本通过在至少 3 个系统上复制所...阅读全文

博文 2018-12-14 10:29:14 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

Linux 上如何禁用 USB 存储设备

程序了,从而导致不可用。 但是这个方法有一个小问题,那就是当系统内核更新的时候,usb-storage 模块会再次出现在它的默认位置。 方法 3:将 USB 存储器纳入黑名单 我们也可以通过 /etc/modprobe.d/blacklist.conf 文件将 usb-storage 纳入黑名单。这个文件在 RHEL/CentOS 6 是现成就有的,但在 7 上可能需要自己创建。 要将 USB 存储列入黑名单,请使用 vim 打开/创建上述文件: $ sudo vim /etc/modprobe.d/blacklist.conf 并输入以下行将 USB 纳入黑名单: blacklist usb-storage 保存文件并退出。usb-storage 就在就会被系统阻止加载,但这种方法有一...阅读全文

博文 2017-12-18 22:52:58 debian.cn

aptitude 与 apt

dumpavail——打印可用软件包列表。apt-cache show pkgs——显示软件包记录,类似于dpkg –print-avail。apt-cache pkgnames——打印软件包列表中所有软件包的名称。dpkg -S file——这个文件属于哪个已安装软件包。dpkg -L package——列出软件包中的所有文件。apt-get autoclean——定期运行这个命令来清除那些已经卸载的软件包的.deb文件。通过这种方式,您可以释放大量的空间。apt-file search filename——查找包含特定文件的软件包(不一定是已安装的),这些文件的文件名中含有指定的字符串。 apt-file 是一个独立的软件包。您必须先使用 apt-get 来安装它,然後运行apt-file...阅读全文

博文 2021-01-28 17:50:09 get 的区别与联系

在TKE上使用Kubecost进行成本管理

。例如 CPU 和 GPU 等计算资源价格相对较高,Mem 价格相对较低,而 Disk 价格则更低),相同的资源利用效率,不同资源对成本的贡献度也不一样。 例如,100%的 Disk 利用率,但是由于相对便宜,对最终的成本控制的贡献就较低。但如果是 CPU 资源,即使资源利用率为30%,由于 CPU 资源价格相对昂贵,最终可能对成本起到关键作用,因此需要用加权平均来评估成本效率,例如: - Mem 的效率:MemEfficiency = MemUsage / MemRequest - CPU 的效率:CPUEfficiency = cpuUsage / cpuRequest - Mem 的成本效率:MemCostEff = a.MemEfficiency...阅读全文

理解 Linux 的虚拟内存

虚拟内存对进程的”欺骗”,每个进程都认为自己获取的内存是一块连续的地址。我们在编写应用程序时,就不用考虑大块地址的分配,总是认为系统有足够的大块内存即可。 安全:由于进程访问内存时,都要通过页表来寻址,操作系统在页表的各个项目上添加各种访问权限标识位,就可以实现内存的权限控制。 数据共享 通过虚拟内存更容易实现内存和数据的共享。 在进程加载系统库时,总是先分配一块内存,将中的库文件加载到这块内存中,在直接使用物理内存时,由于物理内存地址唯一,即使系统发现同一个库在系统内加载了两次,但每个进程指定的加载内存不一样,系统也无能为力。 而在使用虚拟内存时,系统只需要将进程的虚拟内存地址指向库文件所在的物理内存地址即可。如上文图中所示,进程 P1 和 P2 的 B 地址都指向了物理地址 C。 而...阅读全文

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

PostgreSQL 13 正式版发布

-ahead logs)之前将其删除,现在可在 PostgreSQL 13 中进行调整,以指定要保留的 WAL 文件的最大数量, 有助于避免空间不足错误。 PostgreSQL 13 还增加了更多让管理员可以监控数据库活动的方法,包括从 EXPLAIN 中查看 WAL 使用情况的统计信息、流式基础备份的进度,以及 ANALYZE 命令的进度。此外,可以使用新的 pg_verifybackup 命令验证 pg_basebackup 命令输出的完整性。 应用开发 PostgreSQL 13 对来自不同数据源的 PostgreSQL 数据类型进行了优化。此版本在其 SQL/JSON 路径支持中增加了datetime()函数,它可以将有效的时间格式(如 ISO 8601 字符串)转换为...阅读全文

博文 2020-10-04 20:07:23 debian.cn

Redis 6.0.0 GA已正式发布

用于选定的前缀),但服务器端无需进行任何内存操作。此外,现在支持选择加入/退出模式,因此,对于不使用广播模式的客户端,可以将其将缓存的内容准确告知服务器,以减少无效消息的数量。从根本上说,现在该功能在需要低内存模式和需要选择性(低带宽)模式时都更好。 2.这是许多用户的旧请求。现在,Redis支持一种模式,用于复制的RDB文件会在不再有用时立即删除。在某些环境中,最好不要将数据存储在上,而要存储在内存中。 3. ACL在某些方面更好。首先,有一个新的ACL LOG命令,该命令允许查看所有违反ACL的客户端,访问不应该访问的命令,不应该访问的密钥或尝试失败的身份验证。该日志实际上位于内存中,因此每个外部代理都可以调用“ ACL LOG”以查看发生了什么。这对于调试ACL问题非常有用。 但是...阅读全文

博文 2020-05-01 09:15:09 debian.cn

如何校验 Debian 软件包的 MD5

生成MD5和。 all――指令debsums忽视上和,使用deb文件中存在的和,或者如果没有的话,就用它生成一个。 keep――指令debsums把提取/生成的和写入到/var/lib/dpkg/info/package.md5sums文件。 nocheck――意味着提取/生成的和没有对照已安装软件包来进行校验。 如果你看一下目录/var/lib/dpkg/info/的内容,就会看到各个文件的md5sum,如下图所示: $ cd /var/lib/dpkg/info $ ls *.md5sums 列出软件包的所有MD5和: a11y-profile-manager-indicator.md5sums account-plugin-facebook.md5sums account...阅读全文

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

你应该选择Cinnamon作为Linux桌面环境的十个理由

显示在二者当中。 3. 桌面部件。桌面部件是指那些小型且功能专一的应用,我们可将它们随意添加到桌面当中。Cinnamon提供的选项包括CPU监控、监控、天气应用、便签、桌面相框、时间与日期等。 4. 速度。Cinnamon的运行速度极快,程序加载与显示速度也令人满意。虽然这只是根据我的主观感受而且未经任何定时测试,但可以肯定的是,它的速度表现绝不会拖累使用感受。 5. 配置。Cinnamon在可配置性方面不及KDE Plasma,但却已经足够使用甚至超出了我的预期。通过主窗口,我们可以启动特定功能配置窗口,并借此选定新的主题外观、容器边框、图标、控件、指针与桌面等。其他可选项还包括字体与背景等等。我发现其中相当一部分配置工具非常出色,且适度的限制意味着Cinnamon不会像KDE那样带来...阅读全文

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

图解 Debian 系统通用安装教程

并记牢,超级管理员账户啊。 建立新用户,这个只是个昵称,不是登录时的用户名,可以根据自己喜好填。 这玩意就是登录时的用户名了,设置时要多注意,并且一定要记住(其实记不住也没事,还有root呢)。 设置用户密码。 接下来该分区了,我用的虚拟机,但是方法上都一样的。 有空闲分区的话推荐使用安装程序进行自动分区,当然也可以手动分区。自动分区的话如果是新手推荐“将所有文件放在同一个分区中”,有经验的就根据自己喜好调整吧。 手动分区的话一定要记住挂载/根目录,否则会报错。Swap分区(交换分区)推荐大小为物理内存的两倍,比如我的实际内存为2G,swap给上4G就行了。 完成调整后保存分区表即可。需要注意的是需要记住挂载 根目录/ 的分区号,方便后面安装grub, 选是。 对于软件安装,教程既然写的...阅读全文

博文 2017-07-13 12:52:56 debian.cn

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

索容易许多。 创建大文档集合 MongoDB 乐于把最大 16MB 的文档置于集合中,而 GridFS 设计用于超过 16MB 的大文档。但是,可以容纳大文档并不意味着那是一个好主意。MongoDB 在单个文档的大小为几 KB 时表现最好,处理它们的方式更像宽 SQL 表的行。大文档会导致 多种性能问题 。 使用大数组创建文档 文档可以包含数组。最好是把数组元素的数量保持在四位数以下。如果数组频繁添加,会使得包含它的文档过大,那样, 它在上的位置就需要移动 ,反过来,这意味着 每个索引都必须更新 。当一个包含大数组的文档重新索引时,由于 每个数组元素都有一个单独的索引条目 ,所以会发生大量的索引重写。此外,这种重新索引在这类文档插入或删除时也会发生。 为了最小化这个问题,MongoDB...阅读全文

Docker 核心原理

Cgroups 来达到上述目的。 CGroup 全称 Linux Control Group, 是 Linux 内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU、内存、输入输出等) 一组按照某种标准划分的进程,其表示了某进程组,Cgroups 中的资源控制都是以控制组为单位实现,一个进程可以加入到某个控制组。而资源的限制是定义在这个组上,简单点说,cgroup 的呈现就是一个目录带一系列的可配置文件。 理解 cgroups 的几个关键字 cgroup 进程组 进程按照某种标准组织成一个控制组,资源的控制定义在这个组上,新加入的进程就继承该组的配置。比如 docker 启动的容器都加入 docker 这个进程组 subsystem 子系统 cgroups 为每种可以控制的资源定义了一个...阅读全文

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

Golang 操作 Kafka 样例

送给leader 3.leader将消息写入本地 4.follower从leader拉取消息数据 5.follower将消息写入本地后向leader发送ACK 6.leader收到所有的follower的ACK之后向生产者发送ACK 复制代码 2.1.3. 选择partition的原则 那在kafka中,如果某个topic有多个partition,producer⼜怎么知道该将数据发往哪个partition呢? kafka中有几个原则: 1.partition在写入的时候可以指定需要写入的partition,如果有指定,则写入对应的partition。 2.如果没有指定partition,但是设置了数据的key,则会根据key的值hash出一个partition。 3.如果既没指定...阅读全文

博文 2023-01-10 13:46:09 掘金

Debian 往事: 与已故创始人 Ian Murdock 的昔日访谈

? Linux 系统当时的分割方式基本就是分割。所以如果你下载了所有的的话,某种意义上你也就下载了一套 Linux 系统。我们认为这个方法不够好,我们要用更适合分工开发的法子来。 我们决定 Debian 的系统开发由资源包来。也就是说,系统的每一个内容、每一个板块都会以资源包的形式存在,这些资源包能够自动整合成一个完整的系统。你下载了这个资源包的时候,它就知道如何移除自己或是升级自己。 分工也一样按照资源包来,哪个资源包出错了就能非常明确地知道是谁的责任。我们会在开发时设定标准和规定,保证任何来源的资源包都能在我们的系统上照常运行。所以你只要下载全资源包,你就有了一整个系统。这感觉就像手工布艺一样,把很多布片拼成一整个作品,只不过实际上原理要比这复杂不少。 当然 Debian 项目的资源包分割法...阅读全文

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

Kafka 3.0新特性全面曝光,真香!

导语 | kafka3.0的版本已经试推行去zk的kafka架构了,如果去掉了zk,那么在kafka新的版本当中使用什么技术来代替了zk的位置呢,接下来我们一起来一探究竟,了解kafka的内置共识机制和raft算法。一、Kafka简介Kafka是一款开源的消息引擎系统。一个典型的Kafka体系架构包括若干Producer、若干Broker、若干Consumer,以及一个ZooKeeper集群,如上图所示。其中ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的。Producer将消息发送到Broker,Broker负责将收到的消息存储到中,而Consumer负责从Broker订阅并消费消息。(一)Kafka核心组件producer:消息生产者,就是向broker...阅读全文

博文 2022-04-28 16:02:11 mp.weixin.qq.com

Debian Live 项目的剧变

表明他在 Debian Live 项目上的努力一直没有被重视或没有被足够重视。最具决定性的因素是因为在「包的含义」上存在冲突, R.Learmonth 申请了新的包名,而这侵犯了在 Debian Live 上使用的命名空间。 考虑到最主要的 Debian Live 包之一被命名为 live-build ,而 R.Learmonth 申请的新包名却是 live-build-ng ,这简直是对 live-build 的挑战。 live-build-ng 意为一种围绕 vmdebootstrap(LCTT 译注:创造真实的和虚拟机Debian的映像)工具的外部包装,这种包装是为了创造 live 介质(光盘和USB的插入),也是 Debian Live 最需要的的部分。但是当 Baumann...阅读全文

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

基于thanos搭建分布式prometheus

sidecar和prometheus则走原生HTTP接口拿数据。 为了高可用,我们可以部署多个prometheus同时抓取。 为了打散采集/存储压力,我们可以部署多个prometheus各自抓取部分数据。 无论出于上述哪种目标或者混合目标,最终依靠Querier的正确配置都可以提供统一的Promql查询入口给Grafana,这一点是毋庸置疑的。 这里看到了图中有几个陌生的组件: Store Bucket Compactor Prometheus单机存储空间有限,SideCar和Prometheus在同POD内共享数据volume,然后sidecar可以自动将prometheus数据上传到Bucket里归档存储;后续Querier可以通过Store组件从Bucket拉取到历史数据,这样就实现了历史数据...阅读全文

博文 2021-03-01 13:02:46 鱼儿的博客

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

Redis的一些开发规范和建议: 1.冷热数据分离,不要将所有数据全部都放到Redis中 虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高! 2.不同的业务数据要分开存储 不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务! 在实际的使用过程中,redis最大的瓶颈一般是...阅读全文

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

Git 介绍与使用详解

出现的原因,又是谁在何时报告了某个功能缺陷等等。 使用版本控制系统通常还意味着,就算你乱来一气把整个项目中的文件改的改删的删,你也照样可以轻松恢复到原先的样子。 但额外增加的工作量却微乎其微。 1.1.1集中化的版本控制系统,代表Svn 缺点: 1、依赖中央服务器。 如果宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。 2、如果中心数据库所在的发生损坏,又没有做恰当备份,将丢失所有数据——包括项目的整个变更历史,只剩下人们在各自机器上保留的单独快照。 3、整个项目的历史记录被保存在单一位置,就有丢失所有历史更新记录的风险 4、必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,效率就很低了。 1.1.2分布式版本控制系统,代表Git...阅读全文

博文 2017-02-25 09:00:27 程序员