InfraPub 为您找到相关结果 97

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

文件这块的原理描述的文章已经非常多了,所以这里我不再做过多的赘述,感兴趣的同学可以从Wikipedia翻阅一下。由于这块内容比较复杂,不属于本文普及的内容,建议读者另行自研,这里我非常推荐马士兵老师将linux文件系统这块,讲解的真的非常好。 select模型 此模型是IO多路复用的最早期使用的模型之一,距今已经几十年了,但是现在依旧有不少应用还在采用此种方式,可见其长生不老。首先来看下其具体的定义(来源于man二类文档): int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout); 这里解释下其具体一:nfds,也即maxfd,最大的文件描...阅读全文

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

Debian瞻前 微软顾后:安全改进是否会产生负面影响

关于添加TLS 1.2的博文中都没有提到PCI。它表示,它想要删除“弃用旧的安全协议”的障碍,并致力于“一流的加密”。 但是,如果更好的安全性是真正的目标,为什么微软忽略增加其他现代功能?为了公平起见,Windows Server 2008的TLS支持不是过于差劲。由于ECDHE支持,它至少具有PFS(完全正向保密)密码。 有时候,强行优化一个老系统可能会带来更多安全和生态上的落差。因为它使企业和用户有借口坚持早就该被替换或升级的系统。 这也是为什么去年Chrome把整个Diffie-Hellman密码类都移除掉的部分原因。尽管它可以只保留支持更强的2048位,直接取消全部更为简单安全。 Debian放出的仅支持TLS1.2的消息可能不是最终决定,但这种胆识确实值得赞许。与此同时,在...阅读全文

博文 2017-08-11 09:54:18 debian.cn

五种绕过 Linux 命令别名的方法

或显示关于命令的信息。它带运行命令,会阻止 shell 函数查询或者别名,或者显示有关给定命令的信息。 方法 5 - 使用 unalias 命令的说明 要从当前会话的已定义别名列表中移除别名,请使用 unalias 命令: unalias mount 要从当前 bash 会话中删除所有别名定义: unalias -a 如果要永久删除定义的别名,则必须删除别名的定义语句,确保你更新你的 ~/.bashrc 或 $HOME/.bash_aliases : vi ~/.bashrc #或者执行 vi $HOME/.bash_aliases 想了解更多信息,参考这里的在线手册,或者输入下面的命令查看: man bash help command help unalias help alias...阅读全文

博文 2018-03-08 13:33:02 debian.cn

MySQL 8 第一个正式版发布:更好的性能

JSON 的支持,添加了基于路径查询从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。 9. 可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。 10. 高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。 11. 安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度...阅读全文

博文 2018-04-20 10:40:18 debian.cn

Docker CE 19.03 正式发布 无需root权限

加 –pids-limit 标志 docker/cli#1765添加对服务的系统支持 docker/cli#1754在复合文件中增加了对 template_driver 的支持 docker/cli#1746使用该 --device 启动时将设备传递到 Windows 容器中 docker/cli#1606增加了对数据路径端口配置的支持 docker/cli#1509添加快速上下文 switch: commands docker/cli#1501每个节点添加最大副本 docker/cli#1612添加选项来 pull 图像 docker/cli#882添加 –domainname 标志 docker/cli#1130在 docker stack deploy 增加了对秘密驱动程序的支持...阅读全文

博文 2019-07-24 21:30:05 debian.cn

Kubernetes 1.16.0发布 新版本四大主题

-agent-ds-ready作为其节点选择器;kube-proxy addon 开始使用标签node.kubernetes.io/kube-proxy-ds-ready作为其节点选择器;metada -proxy addon 开始使用标签cloud.google.com/metada -proxy-ready作为其节点选择器。 存储 当为 CSI 驱动启用 PodInfoOnMount 时,Volume 上下文中新的 csi.storage.k8s.io/ephemeral 允许驱动程序的 NodePublishVolume 实现根据具体情况确定该 Volume 是临时性的还是正常的持久卷(#79983) 为 VerifyVolumesAreAttached 和 BulkVolume...阅读全文

博文 2019-09-20 13:28:32 debian.cn

分布式 NewSQL 数据库 TiDB

#2342TiFlash添加上报 DeltaTree 引擎读写负载相关 metrics 信息支持 fromUnixTime 和 dateFormat 函数下推默认禁用粗粒度索引过滤器TiDB Ansible新增 TiFlash 监控 #1253 #1257优化 TiFlash 配置 #1262 #1265 #1271优化 TiDB 启动脚本 #1268 Bug 修复 TiDB修复 merge join 在某些场景下 panic 的问题 #15920修复在计算选择率时重复考虑某些表达式的问题 #16052修复极端情况下 load 统计信息可能出现的 panic 的问题 #15710修复 SQL query 中存在等价表达式在某些情况下无法识别导致报错的问题 #16015修复从一个数据库中查询另一个数据库的...阅读全文

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

分布式任务调度平台 XXL

:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试; 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方面的扩展短信、钉钉等告警方式; 13、分片广播任务:执行器集群部署时,任务路由策略选择” 分片广播” 情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片开发分片任务; 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。 15、事件触发:除了”Cron 方式” 和” 任务依赖方式” 触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的 API 服...阅读全文

博文 2018-11-05 21:47:15 JOB 2.0.0 发布

Golang Context 探究

&valueCtx{parent, key, val} } // context.valueCtx 中存储的键值对与 context.valueCtx.Value 方法中传入的不匹配 // 就会从父上下文中查找该键对应的值直到在某个父上下文中返回 nil 或者查找到对应的值 func (c *valueCtx) Value(key interface{}) interface{} { if c.key == key { return c.val } return c.Context.Value(key) } 在 context 传递数据的场景一般很有限,比较常见的使用场景是传递请求对应用户 token 以及用于进行分布式追踪的 trace id。不建议用来传递请求。 我用下面这种图来展示...阅读全文

博文 2021-02-25 09:27:27 lxkaka

基于thanos搭建分布式prometheus

: path: /data/thanos-receive-data type: DirectoryOrCreate - name: thanos-receive-config configMap: name: thanos-receive-config 细节大家可以自己慢慢看,我讲一下关键: 用statefulset部署集群,因为这是一个有状态的存储集群,不能随便漂移。 因为是分布式存储集群,要通过POD亲和性避免2个POD跑到1个Node上。 核心配置是声明receive集群的地址列表,这里利用headless service可以直接拿到每个POD的dns name,是有规则的。 每个thanos receive实例的启动中指定replica标签唯一标识它。 thanos-receive集群的...阅读全文

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

SVN切换分支用法汇总

一、SVN切换分支操作介绍SVN(Subversion,下文简称SVN)是一种版本控制系统,它提供了一系列的命令行工具来管理源代码。在代码的开发过程中,可能会需要更改当前工作目录下所处的分支。SVN提供了switch命令供用户进行分支切换操作,该命令只修改当前工作目录下原本的模块链接并不会真的修改目标URL中的版本库。在SVN中,一个版本库可能会有多个分支,我们可以通过checkout命令来创建这些分支,也可以使用branches工具来进行分支的删除、移动、查看等,这些工具都是由SVN提供的。SVN提供了非常完善的分支管理机制,让我们可以方便地在开发过程中,随时随地地更换所处的分支。二、SVN切换分支常用命令及其介绍切换分支是SVN的基本操作之一,下面是一些常用的命令及其。大家可以...阅读全文

博文 2023-06-09 14:22:35 infras

在 Kubernetes 上扩展 TensorFlow 模型

](https://www.cs.cmu.edu/~muli/file/ps.pdf)(服务器)的中央实体,它负责聚合和计算梯度,并将更新的传递给每个 worker。 在分布式集群中实现这样的策略并非易事。特别是,worker 应该能够在不同节点之间进行数据和权重的沟通,并有效协调它们的学习,同时避免错误。 TensorFlow 在[tf.distribut.Strategy](https://www.tensorflow.org/api_docs/python/tf/distribute/Strategy)模块中实现了各种分布式训练策略,以节省开发人员的时间。有了这个模块,机器学习开发人员只要对他们的代码做最少的修改,就可以在多个节点和 GPU 之间分发训练。 这个模块实现了几种同步策略,包括...阅读全文

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

=tsm1_compact_group op_event=start ... #省略 ... #第四次全量压缩结束 ts=2021-01-05T10:44:13.931365Z lvl=info msg="TSM compaction (end)" log_id=0RVRbtjl000 engine=tsm1 tsm1_strategy=full tsm1_optimize=false trace_id=0RWXOKGG000 op_name=tsm1_compact_group op_event=end op_elapsed=851881.724ms ... ...此时influxdb进行分片数据的第四次的全量压缩,会进行大量的磁盘io及cpu压缩计算,导致服务的压力增大,所以调用方队列出现数据堆积,相关见配置文件...阅读全文

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

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

一 Kafka可视化管理工具kafka-manager 安装及基本使用可参考:https://www.cnblogs.com/dadonggg/p/8205302.html 二 线上环境规划 JVM设置 kafka是scala语言开发,运行在JVM上,需要对JVM合理设置,参看JVM调优专题 修改bin/kafka-start-server.sh中的jvm设置,假设机器是32G内存,可以如下设置: export KAFKA_HEAP_OPTS="-Xmx16G -Xms16G -Xmn10G -XX:MetaspaceSize=256M -XX:+UseG1GC -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=16M" 这种大内存的情况一般...阅读全文

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

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

核心重要Controller服务器不管是kafka2还是kafka3当中,controller控制器都是必不可少的,通过controller控制器来维护kafka集群的正常运行,例如ISR列表的变更,broker的上线或者下线,topic的创建,分区的指定等等各种操作都需要依赖于Controller,在kafka2当中,controller的选举需要通过zk来实现,我们没法控制哪些机器选举成为Controller,而在kafka3当中,我们可以通过配置文件来自己指定哪些机器成为Controller,这样做的好处就是我们可以指定一些配置比较高的机器作为Controller节点,从而保证controller节点的稳健性。被选中的controller节点参与元数据集群的选举,每个...阅读全文

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

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

(初学者说明:RX 表示每秒接收数据,TX 表示每秒发送数据): $ bmon bmon - Linux 带宽监视按 d 键可以查看更详细的带宽使用情况的图形化统计信息,参考下面的截图。 bmon - Detailed Bandwidth Statistics按 Shift + ? 可以查看快速指南。再次按 Shift + ? 可以退出(指南)界面。 bmon – 快速指南通过 Up 和 Down 箭头键可以查看特定网卡的统计信息。但是,要监视一个特定的网卡,你也可以像下面这样作为命令行指定。 选项 -p 指定了要显示的网卡,在下面的例子中,我们会监视网卡 enp1s0: $ bmon -p enp1s0 bmon – 监控以太网带宽要查看每秒位数而不是每秒字节数,可以像下面这样使用 -b...阅读全文

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

你和 Linux 高手只差了一个 LFS

,LFS 绝对配得上称为一本好书,或者说一本好教材。市面上,很难再找到一本如此具体又如此精炼的教材了。 首先,它并不是只是讲讲简单概念,它很具体,具体到就是一个例子,一个告诉你怎么亲手构建出属于自己的 Linux 系统的例子。 其次,它很精炼,它的精炼表现在两个方面:系统构建出来不臃肿;文字描述很精炼。 最后还有一点,这一点至关重要。尽管文字的描述非常精炼,甚至是精炼到枯燥,但是作为一本教材,作者无时无刻不再想尽办法,让你学到东西。无论是编译指令下方各个的介绍,还是软件包安装小节下方软件包内容的介绍,作者真的是想尽办法的试图把知识传递给读者。 LFS 没有缺点吗? 那自然是有的,可以原封不动的照抄上面的优点。辩证的看待这些优点,你就会发现这些优点是有代价的。 首先,由于这个例子过于生动形象,所...阅读全文

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

高性能缓存服务器 Nuster

Nuster 是一个基于 HAProxy 的高性能缓存服务器。Nuster 完全兼容 HAProxy,并且利用 HAProxy 的 ACL 功能来提供非常细致的缓存规则,比如 请求地址为某某时缓存 请求中的 X 为 Y 时缓存 响应头中的 X 为 Y 时缓存 请求速率超过多少时缓存 等等 Nuster 性能评测 非常快, 单进程模式下是 nginx 的 3 倍,多进程下 nginx 的 2 倍,varnish 的 3 倍。详见benchmark 安装 Nuster git clone https://github.com/jiangwenyuan/nuster.git cd nuster make TARGET=linux2628 make install 详情请参照 HAProxy...阅读全文

博文 2017-12-15 22:17:31 debian.cn

JDK 11 版本时间表公布

在 JDK 10 发布两天之后,Oracle Java 平台组首席架构师 Mark Reinhold 提出了 JDK 11 GA 发布的时间表: 6 月 28 日:第一阶段开发(从主分支 fork) 7 月 19 日:运行所有测试 7 月 26 日:第二阶段开发 8 月 16 日:初始候选版本 8 月 30 日:最终候选版本 9 月 25 日:正式版 到目前为止,包含在 JDK 11 中的 JEP 有: JEP-309:动态类文件常量 JEP-318:Epsilon:一款低开销的垃圾收集器 JEP-320:移除 Java EE 和 CORBA 模块 JEP-323:Lambda 的局部变量语法 JDK 11 的 早期体验版本 在 JDK 10 发布前的一个月就有了。Reinhold 之...阅读全文

博文 2018-04-27 08:33:08 debian.cn

Redis 6.0.0 GA已正式发布

我的首选功能是重新实现ACL GENPASS。现在,它使用基于SHA256的HMAC,并接受一个可选来告诉服务器要生成多少位不可猜测的伪随机字符串。Redis在启动时从/ dev / urandom获得内部密钥,然后在计数器模式下使用HMAC来生成其他随机数:这样,您可以滥用API,并在每次需要时调用它,因为它将非常快。是否想为您的应用程序生成无法猜测的会话ID?只需致电ACL GENPASS。依此类推。 4. 现在,对PSYNC2(复制协议)进行了改进。Redis现在将能够修整协议中的最终PING,从而能够更频繁地进行部分重新同步,从而使副本和母版更有可能找到共同的偏移。 5. 带有超时的Redis命令现在要好得多:不仅BLPOP和其他以前接受秒的命令现在都能接受十进制数字,而且实际分...阅读全文

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

王垠:如何掌握所有的程序语言

很快的掌握了这个语言,并用它表达出心里的想法。 在这个过程中,随着需求的出现,他可能会问这样的问题: 这个语言的“变量定义”是什么语法,需要“声明类型”吗,还是可以用“类型推导”? 它的“类型”是什么语法?是否支持“泛型”?泛型的 “variance” 如何表达? 这个语言的“函数”是什么语法,“函数调用”是什么语法,可否使用“缺省”? …… 注意到了吗?上面每一个引号里面的内容,都是一种语言特性(或者叫概念)。这些概念可以存在于任何的语言里面,虽然语法可能不一样,它们的本质都是一样的。比如,有些语言的类型写在变量前面,有些写在后面,有些中间隔了一个冒号,有些没有。 这些实际问题都是随着写实际的代码,解决手头的问题,自然而然带出来的,而不是一开头就抱着语言手册看得仔仔细细。因为掌握了...阅读全文

博文 2017-07-10 10:13:17 debian.cn

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

作逻辑 复制粘贴缓冲区 安装的话也很简单,在 mac 下直接 brew install tmux(前提需要安装 homebrew),Debian 下则直接 sudo apt-get install tmux 在终端中输入 tmux 就可以打开一个新的 tmux session,tmux 的所有操作必须先使用一个前缀键(默认是 ctrl + b)进入命令模式,或者说进入控制台,就像 vim 中的 esc。 基本操作 信息查询 tmux list-keys 列出所有可以的快捷键和其运行的 tmux 命令 tmux list-commands 列出所有的 tmux 命令及其 tmux info 流出所有的 session, window, pane, 运行的进程号,等。 窗口控制 先来看看在...阅读全文

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

十个增加 Linux Shell 脚本趣味的小工具

"rsnapshot done :)" 输出: 下面是一个复杂一点的例子: .... alert=18000 live=$(lynx --dump http://money.rediff.com/ | grep 'BSE LIVE' | awk '{ print $5}' | sed 's/,//g;s/\.[0-9]*//g') [ $notify_counter -eq 0 ] && [ $live -ge $alert ] && { notify-send -t 5000 -u low -i "BSE Sensex touched 18k"; notify_counter=1; } ... 输出: 这里的解释如下: -t 5000:指定超时的时间,毫秒 -u low:设置是否紧急 -i gtk...阅读全文

博文 2018-04-09 09:38:50 debian.cn

在树莓派上搭建 Raspbian 系统下的 Kubernetes 集群

knode1 和 knode2,并将 IP 地址分别调整为 192.168.0.51 和 192.168.0.52。调整完成后,就可以开始安装 K3s 了。 通过 ssh 连接到 knode1 上,执行类似的安装命令。在工作节点上安装 K3s 和之前差不多,需要加上额外的,表明它是一个工作节点,需要连接到已有的集群上, curl -sfL http://get.k3s.io | K3S_URL=https://192.168.0.50:6443 \ K3S_TOKEN=保存下来的JOIN_TOKEN sh - K3S_TOKEN 的值需要替换成保存下来的连接令牌。命令执行完后,在 knode2 的树莓派上重复这个安装过程。 访问Kubernetes集群 knode2的安装完成后,集群基本进入可用状...阅读全文

博文 2020-04-12 16:30:23 debian.cn

nsenter 及 Linux命名空间 简介

, argv[1]); setns clone用于创建新的命令空间,而setns则用来让当前线程(单线程即进程)加入一个命名空间。语法: #define _GNU_SOURCE /* See feature_test_macros(7) */ #include int setns(int fd, int nstype); fd是一个指向一个命名空间的文件描述符,位于/proc/PID/ns/目录。nstype指定了允许进入的命名空间,一般可设置为0,表示允许进入所有命名空间。 因此,往往该函数的用法为: 调用setns函数:指定该线程的命名空间。调用execvp函数:执行指定路径的程序,创建子进程并替换父进程。 这样,就可以指定命名空间运行新的程序了。代码示例: #define...阅读全文

博文 2020-12-15 11:22:44 debian.cn

Kubernetes v1.21 新特性预览

Beta 阶段,并默认开启。注意,使用该特性需要 CSI 驱动程序实现对应的接口。TTL 控制器 BetaTTL 控制器用来自动清理已经结束的 Pod,如处于 Complete 或 Failed 状态的 Job。Pod 停止之后的 TTL 可以通过 .spec.ttlSecondsAfterFinished 来设置。注意,该特性要求集群中各节点(包括控制节点)的时间一致,比如在所有节点中运行 NTP 服务。GenericEphemeralVolume Beta通用临时卷(GenericEphemeralVolume)类似于 emptyDir 卷,但它更加灵活:存储可以是本地的,也可以是网络存储。卷可以有固定的大小,Pod 不能超量使用。卷可能有一些初始数据,这取决于驱动程序和。当驱动程序支持...阅读全文

博文 2021-03-30 20:24:36 mp.weixin.qq.com

Debian 11 "bullseye" 发布,带来内核 exFAT 支持

包已安装的情况下,合适的设备可以在使用 USB 端口连接到系统的同时自动设置使用无驱动后端。新的通用 open 命令新增加的 open 命令将作为 xdg-open(默认)或者 run-mailcap 的别名出现,具体实现则由 update-alternatives 系统管理。它旨在作为命令行交互工具,帮助用户使用默认的应用程序打开文件;所使用的程序按照具体情况可以是图形界面程序。控制组 v2在 bullseye 中,systemd 默认使用控制组 v2(cgroupv2),它提供了统一的资源控制层级架构。如果有需要,可以使用内核命令行重新启用旧有的 cgroups;持久化 systemd 日志在 bullseye 中的 systemd 默认启用了持久日志的功能,日志文件存放于 /var...阅读全文

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

返回一个空的记录集 。 Lookup 而没有索引支持 Lookup 的功能和 SQL 联合查询类似。为了获得良好的性能,作为外键的键值上需要有索引。这并不明显,因为其使用并没有在 explain() 中报告。这些索引并不包含在 explain() 记录的索引里,那些索引是供管道操作符$match、$sort 出现在管道开始时使用的。现在,索引可以覆盖聚合管道的任何阶段 。 不使用多条更新 db.collection.update() 方法用于修改一个已存在文档的一部分或全部,或者是整个替换一个已存在的文档,这取决于你提供的 更新 。除非你设置 multi ,更新匹配查询条件的所有文档,否则它不会更新集合里的所有文档。这一点不是那么明显。 忘记哈希对象中键序的意义 在 JSON 中,一...阅读全文

Git 介绍与使用详解

commit 的同时,你工作目录里的新改动和已经add到stage区的新改动也一起全都消失了 git reset --soft 保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区 将 HEAD 和 branch 往回移动,就能起到撤回 commit 的效果。 reset 如果不加,那么默认使用 --mixed ,它的行为是: 保留工作目录,并且清空暂存区, git reset HEAD^ //以mixed回退到上一个版本 由 reset 所导致的新的文件差异,都会被放进工作目录,相当于回到了git add以前 总之,以--hard回退,相当于丢弃新改动,以--soft回退相当于将新改动放入暂存区,以--mixed回退,相当于不关联新改动,但改动还在 git reset --hard...阅读全文

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

Golang 操作 Kafka 样例

partition,又没有设置key,则会采用轮询⽅式,即每次取一小段时间的数据写入某 个partition,下一小段的时间写入下一个partition 复制代码 2.1.4. ACK应答机制 producer在向kafka写入消息的时候,可以设置来确定是否确认kafka接收到数据,这个可设置 的值为 0,1,all 0代表producer往集群发送数据不需要等到集群的返回,不确保消息发送成功。安全性最低但是效 率最高。 1代表producer往集群发送数据只要leader应答就可以发送下一条,只确保leader发送成功。 all代表producer往集群发送数据需要所有的follower都完成从leader的同步才会发送下一条,确保 leader发送成功和所有的副本都完成备份。安全性最⾼高,但是效...阅读全文

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

Apollo 配置中心简单介绍

, ctrip apollo, disconf, hawk 等配置中心的功能点。综合比较下来携程apollo 更具有优势。 二、简单介绍携程Apollo配置中心 1、What is Apollo 1.1 背景 随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、的配置、服务器的地址…… 对程序配置的期望值也越来越高:配置修改后实时生效,灰度发布,分环境、分集群管理配置,完善的权限、审核机制…… 在这样的大环境下,传统的通过配置文件、数据库等方式已经越来越无法满足开发人员对配置管理的需求。 Apollo配置中心应运而生! 1.2 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范...阅读全文

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

Intel 为啥要给 ARM 代工

公式就尤为重要了。Intel 希望在介绍工艺节点时要公布逻辑芯片的晶体管密度、SRAM cell 单元面积等,并定下加权系数以便于新标准计算。 原本的 XXnm 制造工艺,一方面是衡量速度,一方面也是集成度。越高工艺的目标是集成度越高,速度越快。但如果只用 XXnm 来衡量制造工艺,其实是有所欠缺的。比如中国大陆的 SMIC 和台积电相比,虽然是同等工艺但要慢不少。加上之前苹果交付三星代工的 14nm 芯片反而不如台积电 16nm 芯片的情况,使 Intel 提出的新公式具有一定依据。 不过,Intel 这个新标准的权威性还有待提升,相关例证也有待补充,而且新标准计算相对复杂,不太容易被大众理解。更关键的是出于商业利益,台积电和三星也不可能去迎合 Intel 的新标准,毕竟台积电和三星已...阅读全文

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

Docker 17.06 社区版发布

/static COPY --from=storefront /usr/src/atsea/app/react-app/build/ . WORKDIR /app COPY --from=appserver /usr/src/atsea/target/AtSea-0.0.1-SNAPSHOT.jar . ENTRYPOINT ["java", "-jar", "/app/AtSea-0.0.1-SNAPSHOT.jar"] CMD ["--spring.profiles.active=postgres"] 最终的镜像大小只有209M,其中不包含Maven或node.js。 还有其他的一些构建器方面的优化,包括在FROM指令中使用构建时。 日志和指标 指标 目前通过一个daemon的API端点提供日志...阅读全文

博文 2017-06-30 23:08:57 debian.cn

Linux系统诊断-内存基础

果是特权进程(privileged),会减分(-)进程如果对硬件设备进行直接访问,会减分(-)3.在哪儿可以看到进程的打分?/proc//oom_score4.手动调整分数/proc//oom_adj 该文件可以用于调整在oom发生时,哪些进程应该被kill,范围-16 -- +15 ,默认值为0,  特殊值-17:表示进程永远不会被kill。5.我怎么知道系统有没有触发过OOM?/var/log/messages 、 /var/log/syslog 系统日志或者 dmesg 系统日志诊断工具等都能够找到网图如下:内存相关配置==========5.1 swap相关配置通过调节系统,来告诉计算机使用swap分区的权重1. 简介 swappiness范围0-100,默认60 0...阅读全文

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

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

”user:1000:followers”来说,节省了寥寥的存储空间,却引发了可读性和可维护性上的麻烦 最好使用统一的规范来设计Key,比如”object-type:id:attr”,以这一规范设计出的Key可能是”user:1000″或”comment:1234:reply-to” Redis允许的最大Key长度是512MB(对Value的长度限制也是512MB) String String是Redis的基础数据类型,Redis没有Int、Float、Boolean等数据类型的概念,所有的基本类型在Redis中都以String体现。 与String相关的常用命令: SET:为一个key设置value,可以配合EX/PX指定key的有效期,通过NX/XX针对key是否存在的情况进行区别操作...阅读全文

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

理解 Linux 的虚拟内存

态 查看系统内存情况的方式有很多,free、 vmstat等命令都可输出当前系统的内存状态,需要注意的是可用内存并不只是 free 这一列,由于操作系统的 lazy 特性,大量的 buffer/cache 在进程不再使用后,不会被立即清理,如果之前使用它们的进程再次运行还可以继续使用,它们在必要时也是可以被利用的。 此外,通过 cat /proc/meminfo 可以查看系统内存被使用的详细情况,包括脏页状态等。详情可参见:/PROC/MEMINFO之谜。 pmap 如果想单独查看某一进程的虚拟内存分布情况,可以使用 pmap pid 命令,它会把虚拟内存各段的占用情况从低地址到高地址都列出来。 可以添加 -XX 来输出更详细的信息。 修改内存配置 我们也可以修改 Linux 的系统配置...阅读全文

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

Gitlab CI 配置文件 .gitlab

可用于复制/继承属性,并且是使用hidden keys来提供模版的完美示例。 下面这个例子使用了anchors和map merging。它将会创建两个jobs,test1和test2,该jobs将集成.job_template的,每个job都自定义脚本: .job_template: &job_definition # Hidden key that defines an anchor named 'job_definition' image: ruby:2.1 services: - postgres - redis test1: <<: *job_definition # Merge the contents of the 'job_definition' alias script...阅读全文

博文 2018-12-12 21:09:02 ci.yaml 详解(下)

Docker 核心原理

page 很好的介绍了 namespace 的作用。 namespace提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的 namespace 中,来实现资源隔离的目的。不同 namespace 的进程拥有相互隔离的系统资源。 这里指的资源隔离包含以下这些: Mount: 隔离文件系统挂载点 UTS: 隔离主机名和域名信息 IPC: 隔离进程间通信 PID: 隔离进程的 ID Network: 隔离网络资源 User: 隔离用户和用户组 通过下面的 clone 系统调用可以创建新的进程, flags 控制创建的进程所属的 namespace, 多个 flags 可以同时创建多个 namespace。 1 int clone(int (*child_func)(void...阅读全文

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

细数k8s支持的4种类型的container - 侃豺小哥

容器要求。换句话说,即使有一个未使用的节点可以在其中运行应用程序容器,但如果初始化容器具有该节点可以处理的更高资源先决条件,则Pod也不会部署到该节点。因此,在定义初始化容器的请求和限制时,您应尽可能严格。最佳做法是,除非绝对必要,否则请勿将这些设置为高于应用程序容器的值。 标准容器和Sidecar容器 在k8s1.18 之前,这两种容器从k8s管理的角度来看,并没有什么区别。只不过人为从功能上做了区分。 使用sidecar容器(模块化)具有的优点 加速应用程序开发,因为容器可以在团队甚至更大的社区之间重复使用 整理专家知识,因为每个人都在一个容器化的实现上进行协作,该实现反映了最佳实践,而不是无数种功能大致相同的自家生产的不同容器 启用敏捷团队,因为容器边界是自然边界,是团队职责的契约...阅读全文

博文 2021-08-20 11:45:32 博客园

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

sudoer(嘛,死循环了1visudo 在文件最后加上一行1username ALL=(ALL:ALL) NOPASSWD:ALL username 是你当前的用户,你想从哪个用户免密切换到 root 在我这里是1customer ALL=(ALL:ALL) NOPASSWD:ALL visudo 命令使用的是 nano 编辑器 所以修改好了后,ctrl+x,y,回车 回到 customer 用户, sudo su,可以免密进入 root ,说明配置好了 开启 bbr因为内核版本在 4.9 以上,可以直接开启 bbr。 修改系统12echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4...阅读全文

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

Debian 9 使用kubeadm创建 k8s 集群(下)

: yes become_user: sammy shell: kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml >> pod_network_setup.txt args: chdir: $HOME creates: pod_network_setup.txt 这是这个戏剧的细分: 第一个任务是通过运行kubeadm init初始化集群。 传递--pod-network-cidr=10.244.0.0/16指定将从中分配pod IP的私有子网。 法兰绒默认使用上述子网...阅读全文

博文 2019-05-13 22:57:41 debian.cn

WebAssembly:无需容器的 Docker (下)

lib lib64 media mnt opt proc root run sbin srv sys tmp usr var php-aot-wasm 在一个容器中运行 index.js如果我们在 WasmEdge 使用 php-aot-wasm 我们看到一个 wasi/wasm32 平台只有 2 个基础设施环境变量,使用在 containerd 中运行的 WasmEdge shim 预先设置容器中 / 内所有文件和文件夹的列表,明确预打开以供 Wasm 应用程序访问(WasmEdge shim 中的逻辑的一部分)注意:如果你仔细观察,会发现要从这个镜像运行一个容器,我们必须:通过 --runtime=io.containerd.wasmedge.v1 将命令行...阅读全文

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

HTTP状态码详解

端在收到错误信息后继续向服务器发送数据,服务器的TCP栈将向客户端发送一个重置数据包,以清除该客户端所有还未识别的输入缓冲,以免这些数据被服务器上的应用程序读取并干扰后者。 400 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 2、请求有误。 401 当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当...阅读全文

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

最全的 DevOps 工具集合

动化软件领域的领导者、应用程序自动化领域的创新者,也是 DevOps 运动的创始人之一。Chef 与全球 1000 多家最具创新力的公司合作,以实现他们数字化转型的愿景,并提供可快速交付软件的实践和平台。 Ansible Ansible 是一种开源的软件预备、配置管理和应用程序部署工具。它可以在许多类 Unix 系统上运行,既可以配置类 Unix 系统也可以配置微软 Windows。它自带声明式语言来描述系统配置。 Puppet Puppet 提供的能力可以定义系统所需的软件和配置,然后在初始设置后保持指定状态。 用户使用与 Ruby 类似的声明式领域特定语言(DSL)来定义指定环境或基础架构的配置。Puppet 使用称为 Facter 的一个实用程序获取系统信息,该程序跟随...阅读全文

博文 2021-05-26 14:35:21 博客园

OpenAI掌门人Sam Altman:AI的下一个发展阶段_OneFlow

不够了解自己,不清楚什么类型的技能最难、最需要调动大脑,或者错误估计了控制身体的难度。 Reid Hoffman:除了AI的应用潜力之外,目前大家对AI的讨论有没有轻率的一面,比如将AI用于核聚变研究? Sam Altman:通常而言,如果某个行业获得非常广泛的社会关注,所有人都在谈论它,这可能不是什么好事,可惜这恰恰是AI行业目前的情况,我不希望这是AI行业“垮掉”的前兆。 业内有人正在研究利用强化学习模型控制核聚变反应,但据我们所知,AI模型在这里发挥的作用还非常有限。 我们现在进入了“AI+”时代,相信AI在未来可以实现很多东西,会成为最大的新一代技术平台。但就目前而言,我们倾向于往更有确定性的方向发展,比如,业内研究出了缩放定律(Scaling Law,该定律揭示AI模型性能与模型...阅读全文

博文 2023-02-04 15:55:11 CSDN博客

Web前端知识体系精简

this this 存在于函数中,它指向的是该函数在运行时被调用的那个对象。在实际项目中,遇到this的坑比较多,因此需要对this作深入的理解。 Function对象还提供了call、apply和bind等方法来改变函数的this指向,其中call和apply主动执行函数,bind一般在事件回调中使用,而call和apply的区别只是的传递方式不同。关于call,apply和bind的用户请参考博客:详解JS的call,apply和bind 4、构造函数 new JS中的函数即可以是构造函数又可以当作普通函数来调用,当使用new来创建对象时,对应的函数就是构造函数,通过对象来调用时就是普通函数。 普通函数的创建有:显式声明、匿名定义、new Function() 等三种方式。 当通过new来...阅读全文

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

谷歌公开了内部管理Infra层的两个工具的Paper

问题域是类似的,但是Kubernetes的目标和限制条件和Prodspec,Annealing是不同的。因此,它们的优先级和解决方案是不同的。这是共同进化的一个实例,很明显很多项目的基本理念都是类似的——至少表面上看是这样。比如,Kubernetes CRD和Prodspec的asset解决的问题类似。Prodspec创建asset时有严格的要求,而Kubernetes就更为灵活,允许资源的部分mutation。 Terraform是使用声明化配置语言定义并且提供数据中心基础架构的开源工具。在2014年推出首个版本,时间线和Kubernetes,Annealing类似。Annealing和Terraform之间有很多相似之处,虽然它们是完全独立开发的。比如,Terraform提供者类似于...阅读全文

博文 2023-01-08 11:23:20 CSDN博客