InfraPub 为您找到相关结果 564

Go 语言的大版本更新:Go 2.0 安排上了

任何类型的向后兼容的“增量”语言特性变更,因为他们认为无论变更多么小,都要有更面的支持计划,并将 Go 2 考虑在内。 对于这些累积下来的提案,官方表示现在是时候采取行动了! 近况 本文发布时,官方表示目前在 Go 2 的提案中,大约有 120 个尚未解决且被标记为提案的 issue。这些提案都涉及到重要的库或语言特性变更,而它们通常不能与 Go 1 互相兼容。Ian Lance Taylor 和 Robert Griesemer 一直在研究这些提案,并对它们进行了分类(Go2Cleanup, NeedsDecision 等),以理解这些提案背后的含义并使它们后续更易进行。此外,他们还合并了相似的提案,并关闭了那些看似明显超出 Go 范围的提案,或者其他方面无法实现的提案。 早期出现的两个...阅读全文

aptitude 与 apt

的。apt-get upgrade——更新所有已安装的软件包apt-get dist-upgrade——将系统升级到新版本apt-cache search string——在软件包列表中搜索字符串dpkg -l package-name-pattern——列出所有与模式相匹配的软件包。如果您不知道软件包的名,您可以使用“*package-name-pattern*”。aptitude——详细查看已安装或可用的软件包。与apt-get类似,aptitude可以通过命令行方式调用,但仅限于某些命令——最常见的有安装和卸载命令。由于aptitude比apt-get了解更多信息,可以说它更适合用来进行安装和卸载。apt-cache showpkg pkgs——显示软件包信息。apt-cache...阅读全文

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

架构师详解 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

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

你打算在程序代码中来设置这个东西,那么可以调用mallopt(M_ARENA_MAX, xxx)来实现,由于我们AuthServer采用了预分配的方式,在各个线程内并没有分配内存,所以不需要这种优化,在初始化的时候采用mallopt(M_ARENA_MAX, 1)将其关掉,设置为0,表示系统按CPU进行自动设置。 意外发现 想到tcmalloc小对象才从线程自己的内存池分配,大内存仍然从中央分配区分配,不知道glibc是如何设计的,于是将上面程序中线程每次分配的内存从1k调整为1M,果然不出所料,再分配完64M后,仍然每次都会增加1M,由此可见,新版 glibc完借鉴了tcmalloc的思想。【原文出处: 陈斌的博客】...阅读全文

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

kubectl 创建 Pod 背后到底发生了什么?—探寻 Kubectl 创建 Pod 的原理

源的数量,而且能限制某个 Namespace 中被 Pod 所请求的资源总量。该准入控制器和资源对象 ResourceQuota一起实现了资源配额管理。LimitRanger 作用类似于上面的 ResourceQuota 控制器,针对 Namespace 资源的每个个体(Pod 与 Container 等)的资源配额。该插件和资源对象 LimitRange 一起实现资源配额管理。 3. etcd 到现在为止,Kubernetes 已经对该客户端的调用请求进行了面彻底地审查,并且已经验证通过,运行它进入下一个环节。下一步 kube-apiserver 将对 HTTP 请求进行反序列化,然后利用得到的结果构建运行时对象(有点像 kubectl 生成器的逆过程),并保存到 etcd 中。下面我们...阅读全文

博文 2022-04-18 16:18:04 CSDN

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

位是否为1。 FD_SET(int fd,fd_set*set) 用来设置描述词组set中相关fd的位,即将bitmap结构中某一位设置为1,索引值为fd。 FD_ZERO(fd_set *set) 用来清除描述词组set的部位,即将bitmap结构部清零。 首先来看一段服务端采用了select模型的示例代码: //创建server端套接字,获取文件描述符 int listenfd = socket(PF_INET,SOCK_STREAM,0); if(listenfd < 0) return -1; //绑定服务器 bind(listenfd,(struct sockaddr*)&address,sizeof(address)); //监听服务器 listen(listenfd,5...阅读全文

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

在 Kubernetes 上扩展 TensorFlow 模型

。诸如 KFServing 这样的工具可以让你根据需要定制扩展逻辑,包括 RPS 和请求并行目标。 你也可以使用 Kubernetes-native 工具,比如 HPA,根据用户定义的指标对模型进行扩展。你可以研究一下其他很棒的服务工具,比如 Seldon Core 和 BentoML。它们都支持自动扩展,并为自动化服务模型版本、金丝雀发布、更新和生命周期管理提供了许多有用的功能。 #### 作者介绍: Kirill Goltsman,技术博客写手、研究员,专攻研究人工智能 / 机器学习及容器化技术。在过去的几年里,他领导了专注于数据分析、Kubernetes 以及游戏和安领域的人工智能的初创公司的内容创作策略。在他的技术写作中,Kirill 利用了他的编程语言(Javascript...阅读全文

处理器架构消亡史

带动了以X86为基础的处理器的飞速发展。就在PC从企业级市场走向民用市场的同时,半导体行业也在酝酿着一场变革。从英特尔身上折射出来的市场对处理器的需求,让半导体厂商们看到了红利。于是,在此期间,各大厂商都开始着手于处理器架构的研究,2017 年图灵奖获得者John Hennessy 和 David Patterson 在其所著的《计算机架构的新黄金时代》一文中曾提到,20 世纪 80 年代我们做的研究(在计算机领域)能为我们带来回报,能改善成本、能源、安以及性能。在巨大的回报之下,处理器架构也迎来了百家争鸣的时代。从公开的消息显示,20世纪80年代期间诞生的处理器架构不仅包括我们耳熟能详的ARM以及MIPS,SPARC、DEC Alpha、PA-RISC和其他一些产品也在同一时期出现,这些...阅读全文

journalctl 清理journal日志 - 九重霄

件。 换句话说, 日志目录中不应该存在后缀名不等于 ".journal" 或 ".journal~" 的文件, 因为这些文件永远不会被清理。 SystemMaxUse= 与 RuntimeMaxUse= 限制部日志文件加在一起最多可以占用多少空间。 SystemKeepFree= 与 RuntimeKeepFree= 表示除日志文件之外,至少保留多少空间给其他用途。 systemd-journald 会同时考虑这两个因素, 并且尽量限制日志文件的总大小,以同时满足这两个限制。 SystemMaxUse= 与 RuntimeMaxUse= 的默认值是10%空间与4G空间两者中的较小者; SystemKeepFree= 与 RuntimeKeepFree= 的默认值是15%空间与4G空间两者中...阅读全文

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

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

以进行故障排除的二进制文件和工具。这就决定了该容器有助于提供安可靠的运行时环境,但也很难在问题发生时进行调试。 在这种情况下,临时容器发挥作用。它们实现了调试容器附加到主进程的功能,然后你可以用于调试任何类型的问题。调试容器可以基于任何镜像,因此可以根据您的需求进行定制。您可以构建自己的调试镜像,其中包含特殊的调试二进制文件或仅包含curl,OpenSSL和MongoDB客户端之类的工具。但是,您也可以选择Linux发行版(如Ubuntu)或仅运行Busybox镜像,这两个镜像都已经包含了许多有用的工具。 如何使用临时容器? 临时容器是alpha功能,因此默认情况下处于禁用状态。您将需要激活以下功能门才能使用它们: 临时容器 PodShareProcessNamespace(v1.16中的...阅读全文

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

深入理解Golang之context

Server、Connection、Request,不仅将上游的信息共享给下游任务,同时实现了上游可发送取消信号取消所有下游任务,而下游任务自行取消不会影响上游任务。总结context主要用于父子任务之间的同步取消信号,本质上是一种协程调度的方式。另外在使用context时有两点值得注意:上游任务仅仅使用context通知下游任务不再需要,但不会直接干涉和中断下游任务的执行,由下游任务自行决定后续的处理操作,也就是说context的取消操作是无侵入的;context是线程安的,因为context本身是不可变的(immutable),因此可以放心地在多个协程中传递使用。参考资料1、Package context2、Go Concurrency Patterns: Context3...阅读全文

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

Apache Kafka发布 3.0 正式版

生成在 3.0 和KIP-730 中,Kafka 控制器现在完接管了生成 Kafka 生产者 ID 的责任。控制器在 ZK 和 KRaft 模式下都这样做。这让我们更接近桥接版本,这将允许用户从使用 ZK 的 Kafka 部署过渡到使用 KRaft 的新部署。KIP-679:Producer 将默认启用最强的交付保证从 3.0 开始,Kafka 生产者默认开启幂等性和所有副本的交付确认。这使得默认情况下记录交付保证更强。KIP-735:增加默认消费者会话超时Kafka Consumer 的配置属性的默认值session.timeout.ms从 10 秒增加到 45 秒。这将允许消费者在默认情况下更好地适应暂时的网络故障,并在消费者似乎只是暂时离开组时避免连续重新平衡。KIP-709:扩展...阅读全文

博文 2021-09-26 14:13:03 joseph

7大维度看国外企业为啥选择gRPC打造高性能微服务

括Java,Ruby,Go和Node。框架是否为现有的语言选择提供了一流的支持,同时提供了用其他语言编写新服务的选项? 代码量 - 框架应该有助于降低工程成本。企业需要编写和维护多少代码才能使其工作?与业务逻辑相比,这是多少样板代码? 安 - 所有的内部通信都应该被认证和加密。我们需要能够使用所有通信的SSL / TLS(或等价物)。 设计上的考虑,并非都与技术有关 服务API是最重要的接口之一,因为在开发过程中对设置服务期望至关重要。解决服务API的设计是一项艰巨的任务,当不同的团队负责所涉及的不同服务时,该任务会被放大。最大限度地减少由于预期不匹配而浪费的时间和精力,与缩短编码时间一样有价值。由于Bugsnag拥有跨地区的工程团队,因此沟通时间有限。必须通过简化沟通,确保事情不用那么多...阅读全文

博文 2018-03-19 17:51:32 debian.cn

六大算法之三:动态规划【转载】

3,5的数额等;2、填写二维数组第一列时,代表到用到面额为i时,剩余数额为0,即只用i就可以组成相应数额,这也是一种方法,所以第一列的值,第一个为0,后面为1. public static int SmallMoney(int num[],int target) { int m = num.length; int dp[][] = new int[m][target+1]; dp[0][0] = 1; for(int i=1;i<=target;i++){ if(i%num[0] == 0){ dp[0][i] = 1;//第一行数值填写 }else{ dp[0][i] = 0; } } for(int i=0;i阅读全文

博文 2021-07-31 07:18:53 CSDN博客