InfraPub 为您找到相关结果 146

PHP 7.4 有哪些新特性

(User $user) => $user->id, $users) 需要注意几点: 短闭包可以直接访问闭包函数外面的变量,所以不需要再写 use 关键词以fn关键词开始$this 可以像普通的闭包一样使用短闭包只有一行代码,仅仅做返回声明使用,不允许使用return 关键词 还可以使用更严格类型的方式 $ids = array_map(fn(User $user): int => $user->id, $user); 预加载 PHP预加载可以极大的提高性能 优点:在PHP 7.4以前,如果你使用了框架来开发,每次请求文件就必须加载和重新编译。预加载在框架启动时在中加载文件,而且在后续请求中永久有效。 缺点:性能的提升会在其他方面花费很大的代价,每次预加载的文件发生改变时,框架需要重新启动。 属...阅读全文

博文 2019-11-29 20:45:16 debian.cn

OpenJDK 14 性能提升,但 OpenJDK 8 仍是王者

Bork 文件加密软件包进行测试,在经过测试的版本中,性能基本上没有变化。 自 OpenJDK 8 以来,DaCapo 的 H2 基准被建模为类似于 JDBCbench 的中(in-memory)基准,其性能得到了很好的提升,与此前的版本相比,OpenJDK 14 再次以微弱的优势获得了第一名。 可以看到,基于 Python Pybench 的 Jython 基准测试也是 OpenJDK 8 拥有最佳成绩的众多案例之一。 在运行 Daytrader 基准测试的 Tradebeans 测试中,OpenJDK 14 再度以微弱的优势拿下最佳的成绩。 就像打乒乓球一样,Renaissance 的 Scala Dotty 基准测试提供了一个类似的例子,说明 OpenJDK 的性能也会上下波动。在此次测...阅读全文

博文 2020-03-22 08:46:01 debian.cn

Debian 上安装搭建 Shadowsocks 服务

在使用了一段时间后,决定由 CentOS 转移到 Debian 上,以便在低配置的服务器上网站能更加的稳定,Shadowsocks 服务也有之前的 python 版本转移到了 shadowsocks-libev 版本,原因是 libev 的版本是用 C 语言写的,会更加的节省,更重要的是该 libev 一直在不断的维护着,更新也很频繁。 搭建环境 本人还是在 Vultr.com 的 VPS 上安装了 Debian 8.0 x86 minimal 系统,在 Debian 8(Jessie) 编译 libev 版本需要开启 debian-backports 来安装 dh-systemd 和 init-system-helpers. 首先要在 debian 的源列表中添加 backports...阅读全文

博文 2021-01-28 17:50:14 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

Golang 中的 channel 通道详解

channel通道golang的并发模型是序列通信处理CSP(communicating sequential process)——使用通信来共享 ,避免goroutine因竞争共享频繁加锁产生的性能问题。基本数据结构golang中提供了一个特殊的类型channel实现goroutine之间的通信。channel类似于队列,先进先出。channel数据结构源码在src/runtime/chan.go下。chan 使用 hchan 表示,它的传参与赋值始终都是指针形式,每个 hchan 对象代表着一个 chan。hchan 中包含一个缓冲区 buf,它表示已经发送但是还未被接收的数据缓存。buf 的大小由创建 chan 时的参数来决定。qcount 表示当前缓冲区中有效数据的总量...阅读全文

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

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

Docker 核心原理

经存在的一个容器共享一个 Network Namespace,而不是和宿主机共享。新创建的容器不会创建自己的网卡,配置自己的 IP,而是和一个指定的容器共享 IP、端口范围等 None 模式 使用none模式,Docker 容器拥有自己的 Network Namespace,但是,并不为Docker 容器进行任何网络配置。也就是说,这个 Docker 容器没有网卡、IP、路由等信息。需要我们自己为 Docker 容器添加网卡、配置 IP 等 Cgroups 通过 Linux Namespace 为新创建的进程隔离了文件系统、网络并与宿主机器之间的进程相互隔离,但是 Namespace 并不能够为我们提供物理资源上的隔离,比如 CPU 或者。所以 Docker 还借助了 Linux...阅读全文

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

译:Kubernetes 最佳实践

览我之前翻译的Kubernetes 的自动伸缩你用对了吗?;HPA 除了可以基于 CPU 指标伸缩,还可以基于,或者自定义指标,可以浏览Kubernetes HPA 基于 Prometheus 自定义指标的可控弹性伸缩。使用资源请求和约束应设置资源请求和约束(可在容器中使用的最小和最大资源量)以避免容器在未分配所需资源的情况下启动,或集群用尽可用资源。在没有限制的情况下,Pod 可以使用比所需更多的资源,从而导致可用资源总量减少,这可能会导致集群上的其他应用程序出现问题。节点可能会崩溃,并且调度程序可能无法正确调度新的 pod。如果没有请求,无法为应用程序分配足够的资源,它可能会在尝试启动或执行异常时失败。资源请求和限制以毫核和兆字节为单位定义可用的 CPU 和。请注意,如果进程超出...阅读全文

博文 2022-09-13 19:32:21 atbug.com

一位资深Java架构师的晋级心得

师之前,应当先成为Java工程师。熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池……Java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;nio,没什么好说的,值得注意的是"直接"的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题 成为Java架构师,需要掌握哪些技能呢? 1.框架源码分析 设计模式:Singleton单例模式,Factory工厂模式,Proxy代理模式,Template模板模式,Prototype原型模式等Spring5:Spring提醒结构,IOC注入原理,AOP设...阅读全文

博文 2019-01-13 22:49:22 debian.cn

3个 Linux 命令让你看起来很忙:摸鱼的技巧

。它播放的序列由你决定,但默认情况下它包括一个加密货币挖掘模拟器、composer PHP 依赖管理器、内核编译器、下载器、管理等等。不过,我最喜欢的是显示 simcity 加载消息的设置。因此,只要没有人检查得太仔细,你就可以花整个下午的时间等待电脑完成进度条。 Genact 有 linux、os x 和 Windows 版本,Rust 源码可以在 github 上找到。 Hollywood Hollywood 采取了更直接的方式。它本质上是在终端中创建一个随机数和拆分屏幕的配置,并启动看起来很忙的应用程序,如 htop、目录树、源代码文件和其他应用程序等,并每隔几秒钟进行切换。它以 shell 脚本的形式组合在一起,因此可以很容易地根据你的需要进行修改。 Hollywood 的源代码可...阅读全文

博文 2019-09-28 15:48:43 debian.cn

PostgreSQL 13 正式版发布

索引所需的整体空间使用率,同时提高了整体查询性能。 PostgreSQL 13 引入了增量排序,即在查询中较早步骤的排序数据可以加速后面步骤的排序。此外,PostgreSQL 现在可以使用扩展的统计信息(可通过CREATE STATISTICS访问)来为带有OR子句和IN/ ANY查找列表的查询创建改进的计划。 在 PostgreSQL 13 中,更多类型的聚合查询和分组查询可以利用 PostgreSQL 的高效哈希聚合功能,因为具有大型聚合的查询不必完全放入。对分区表的查询也得到了性能提升,因为现在有更多的情况下可以修剪分区和直接联接分区。 优化管理 清理(Vacuuming)是 PostgreSQL 管理的一个重要部分,使数据库在更新和删除行后能够回收存储空间。此过程也会带来管理上的...阅读全文

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

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

泛型又近了一步。 另外在本次新版本中,像是 template 支持跨行: {{"hello" | printf}} 又或是 Linux 的默认管理策略下又从 MADV_FREE 改回了 MADV_DONTNEED 策略,大家在新版本中不再需要设置: GODEBUG=madvdontneed=1 大家若有需求都可以进一步去了解,现在新版本的功能特性已经锁定,基本尘埃落定。 传送门:https://tip.golang.org/doc/go1.16。 分享 Go 语言、微服务和奇怪的系统设计 ???? 长按关注煎鱼,在知识的海洋里遨游 学习资料分享,关注公众号回复指令: 回复【000】,下载 LeetCode 题解大全。回复【001】,下载 Go 进阶图书 Mastering Go。...阅读全文

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

如何在 Linux 上安装 Intel 微代码固件

微代码就是由 Intel/AMD 提供的 CPU 固件。Linux 的内核可以在引导时更新 CPU 固件,而无需 BIOS 更新。处理器的微码保存在中,在每次启动系统时,内核可以更新这个微码。这些来自 Intel/AMD 的微码的更新可以去修复 bug 或者使用补丁来防范 bug。 如果你是一个 Linux 系统管理方面的新手,如何在 Linux 上使用命令行方式去安装或者更新 Intel/AMD CPU 的微码固件呢? 如何查看当前的微码状态 以 root 用户运行下列命令: # dmesg | grep microcode 输出如下: 注意,你的 CPU 有可能出现没有可用的微码更新的情况。这时它的输出可能是如下这样的: [ 0.952699] microcode: sig...阅读全文

博文 2018-03-07 19:37:47 debian.cn

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

一、HAProxy简介 (1)HAProxy 是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。 HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在时下的硬件上,完全可以支持数以万计的 并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。 (2)HAProxy 实现了一种事件驱动、单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User...阅读全文

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

Python的闭包和装饰器

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

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

本田 40GB 数据险遭泄漏 因云端数据库未设密

% 的 Elasticsearch 启用了验证插件,另外有 2% 则关闭了 Elasticsearch。2018 年 11 月份,美国还曾发生一起 ElasticSearch 服务器在没有密码的开放状态下泄露了将近 5700 万美国民众个人信息的事件。当时共泄漏超过 73GB 数据,并且几个数据库被缓存在服务器中,其中一个数据库包含的个人信息就达到了 56,934,021 份。2018 年 12 月份,巴西最大的订阅电视服务之一的 Sky Brasil 在没有密码的情况下将 ElasticSearch 服务器暴露在互联网上,其 3200 万客户数据在网上暴露了很长时间,存储数据包括客户姓名、电子邮件地址、密码、付费电视包数据、客户端 IP 地址、个人地址、付款方式、设备型号等。 根据...阅读全文

nsenter 及 Linux命名空间 简介

进程有一个独立的挂载文件系统,始于Linux 2.4.19ipc:ipc命名空间,使进程有一个独立的ipc,包括消息队列,共享和信号量,始于Linux 2.6.19uts:uts命名空间,使进程有一个独立的hostname和domainname,始于Linux 2.6.19net:network命令空间,使进程有一个独立的网络栈,始于Linux 2.6.24pid:pid命名空间,使进程有一个独立的pid空间,始于Linux 2.6.24user:user命名空间,是进程有一个独立的user空间,始于Linux 2.6.23,结束于Linux 3.8cgroup:cgroup命名空间,使进程有一个独立的cgroup控制组,始于Linux 4.6 Linux的每个进程都具有命名空间,可以在...阅读全文

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

为保护隐私而生 反取证操作系统:Kodachi

Kodachi Linux 是一款基于 Debian 8.6 的操作系统。它是专为保护用户隐私而设计的,因此具有高度的安全及匿名性,并具备反调查取证的特点。 Kodachi 的使用也非常方便简单,你可以通过 USB 驱动来在你的 PC 上启动它。当你完全启动 Kodachi 操作系统后,你将会建立一个 VPN+Tor+DNScry 服务器的运行环境。你不需要特别了解或学习 Linux 的知识,Kodachi 都为你准备好了你所需要的!整个操作系统都活动在你的临时 RAM 下。因此,你一旦你关机,任何的操作痕迹都会被清除,避免你的隐私泄露及被追踪调查。 Kodachi 是一个实时的操作系统,你可以从几乎任何计算机上来启动它。例如:从 DVD,U盘 或 SD卡等。它旨在保护你的隐私及匿名性...阅读全文

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

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

我们将介绍,如何在三个树莓派上,创建出一套 Kubernetes 集群并正常使用。在这种场景下,主节点的和 CPU 资源较有限,执行 Kubernetes 任务时性能会有折扣,想做升级也不容易。 在开始之前,我们先介绍 K3s 这个项目。K3s 被誉为是最轻量级的 Kubernetes 发行版,它针对低配的 x86 和 ARM 处理器优化,可以让 Kubernetes 在树莓派上运行得更好。 基于 Raspbian 的 kubernetes 集群 本文我们将介绍如何使用 K3s 在树莓派上创建 Kubernetes 集群。系统我们用的是树莓派最流行的 Raspbian。 准备工作 在开始创建 Kubernetes 集群之前,我们需要准备, 至少一个树莓派,包括 SD 卡和电源网线,普通...阅读全文

博文 2020-04-12 16:30:23 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 博客园

得物云原生全链路追踪Trace2.0-采集篇 - OSCHINA

误数:如 HTTP 500 错误。当然,有些即便是 HTTP 200 状态也需要根据特定业务逻辑来区分当前请求是否属于“错误”请求。 饱和度:类似服务器硬件资源如CPU,,网络的使用率等等。 所以,我们决定使用 Micrometer 库来对各个组件进行吞吐量,延迟和错误率的埋点,从而对 DB 类,RPC类的组件做性能监控。因此也可以说,我们第二阶段的监控是以指标监控为主,调用链监控为辅的应用性能监控。 3.1 使用 Endpoint 贯穿指标埋点帮助性能分析 在指标埋点过程中,我们在所有的指标中引入了“流量入口(Endpoint)”标签。这个标签的引入,实现了根据不同流量入口来区分关联 DB,缓存,消息队列,远程调用类的行为。通过流量入口,贯穿了一个实例的所有组件指标,基本满足了以下场景...阅读全文

博文 2022-12-10 06:50:41 中文开源技术交流社区

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

吗?你不能。你得看看它里面装的是什么型号的处理器,有多少个核,主频多少,有多少 L1 cache,L2 cache……,有多少和硬盘,显示器分辨率有多大,显卡是什么 GPU,网卡速度,等等各种“配置”。有时候你还得看各个组件之间的兼容性。 这些配置对应到程序语言里面,就是所谓“语言特性”。举一些语言特性的例子: 变量定义 算术运算 for 循环语句,while 循环语句 函数定义,函数调用 递归 静态类型系统 类型推导 lambda 函数 面向对象 垃圾回收 指针算术 goto 语句 这些语言特性,就像你在选择一台电脑的时候,看它里面是什么配置。选电脑的时候,没有人会说 Dell 一定是最好的,他们只会说这个型号里面装的是 Intel 的 i7 处理器,这个比 i5 的好,DDR3 的...阅读全文

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

运维的未来:云服务兴起,运维人员会“下岗”吗?

,就因为dev团队正在推出的破烂玩应,他们大半夜的得被叫起来。这种思维方式基本上已经过时了,正是思维方式使得人们都觉得干运维这一行的都是深深厌恶自己,一根接一根不停抽烟。这是由于缺乏同理心而产生的避重就轻、刻薄的想法。如果凌晨两点出现不足的异常,要不要去警告那些没有远见或者能力的运维人员去解决这个问题呢?还是说我们应该警告那些对系统相当熟悉的开发者呢?后一种做法似乎是明显的,但是关键在于他们需要被授权获悉状况,调试后自动解决。 其实新运维模式本质上应该把运维看作是一个产品团队,其产品就是基础设施。就像开发者把 API 作为他们提供的服务,运维把 API 以工具、UI、自动化、基础设施即代码、可观察性和警戒的形式作为他们提供的基础设施。 @perterbourgon 关于这个话题,我有很多想...阅读全文

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

架构师详解 Nginx 架构

主进程(master process)生成一个子进程(worker process)出来和客户端建立连接进行交互,直到连接断开,该子进程就结束了。使用进程的好处是各个进程之间相互独立,不需要加锁,减少了使用锁对性能造成影响,同时降低编程的复杂度,降低开发成本。其次,采用独立的进程,可以让进程互相之间不会影响,如果一个进程发生异常退出时,其它进程正常工作,master 进程则很快启动新的 worker 进程,确保服务部中断,将风险降到最低。缺点是操作系统生成一个子进程需要进行复制等操作,在资源和时间上会产生一定的开销;当有大量请求时,会导致系统性能下降。 异步非阻塞 每个工作进程使用异步非阻塞方式,可以处理多个客户端请求。当某个工作进程接收到客户端的请求以后,调用 IO 进行处理,如果不能...阅读全文

博文 2018-05-01 23:10:47 debian.cn

Debian 10.8 发布:包括多项安全更新和错误修复

环和泄漏[CVE-2019-16319 CVE-2019-19553 CVE-2020-11647 CVE-2020-13164 CVE-2020-15466 CVE-2020-25862 CVE-2020-25863 CVE-2020-26418 CVE-2020-26421 CVE-2020-26575 CVE-2020-28030 CVE-2020-7045 CVE-2020-9428 CVE-2020-9430 CVE-2020-9431] | ## 安全更新 本次修订为稳定版添加了以下安全更新。安全团队已经发布了关于这些更新的公告: | 公告ID | 包...阅读全文

博文 2021-02-07 10:57:22 joseph

树莓派 9 周年:你不知道的树莓派冷知识

实验。尽管 Pis 已经是比较旧的树莓派型号,但最近 Astro Pi 项目组刚刚对它们进行了升级,把 32 GB SD 卡换成了 256 GB 的 microSD 卡。7.树莓派基金会希望老款的产品也能永远存在尽管 Raspberry Pi B +,Raspberry Pi 2,Raspberry Pi 3 B 和其他一些老款型号的树莓派产品已经发布了很多年,但树莓派基金会仍在继续积极地制造并销售它们。树莓派官方表示不会报废(EOL)产品,因为树莓派低成本的特性,这些老款的树莓派在很多对设备性能要求并不高的工业客户中依然很受欢迎。 树莓派创始人 Upton 在 2019 年接受媒体采访时曾表示:“停产意味着产品的死亡,我们迄今为止仅停产了 5 种产品。”他说,树莓派目前停产的仅有 5...阅读全文

博文 2021-03-11 17:03:55 diablo4

聊聊很重要的内核技术eBPF

查是BPF程序的空运行。这意味着验证者将尝试分析程序将要执行的每条指令,以确保它不会执行任何无效的指令。此执行还将检查所有指针是否均已正确访问和取消引用。最后,空运行向验证程序通知程序中的控制流,以确保无论程序采用哪个控制路径,它都会到达BPF_EXIT指令。为此,验证程序会跟踪堆栈中所有访问过的分支路径,并在采用新路径之前对其进行评估,以确保它不会多次访问特定路径。经过这两项检查后,验证者认为程序可以安全执行。 3) hook : 由于eBPF是事件驱动的,所以ebpf是作用于具体的hook的。根据不同的作用,常用的有XDP,trace,套接字等。 4)帮助函数:eBPF程序无法调用任意内核功能。允许这样做会将eBPF程序绑定到特定的内核版本,并使程序的兼容性复杂化。取而代之的是...阅读全文

博文 2020-08-16 11:08:44 debian.cn

字节跳动开源微服务中间件 CloudWeGo - OSCHINA

CloudWeGo 走向完善: 继续开源其他内部项目。开源更多字节跳动常用 Golang 项目,如 HTTP 框架 Hertz、基于共享的 IPC 通信库 ShmIPC 等,为开发者提供更多场景的微服务需求支持。 逐步开源经验证的、稳定的特性。CloudWeGo 的主要项目均为字节内部微服务提供支持,许多新特性仍在内部验证,相对成熟后会逐步开源,如对 ShmIPC 的集成、无序列化、无生成代码的支持等。 结合内外部用户需求,持续迭代。项目开源后会根据开发者需求开展迭代。例如近一个月来,团队收到了来自开发者的大量关于 Protobuf 的诉求,为了提供良好的支持,他们已经在筹备开展 Kitex 对 Protobuf 支持的性能优化。...阅读全文

博文 2021-09-09 13:56:42 中文开源技术交流社区

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

), Mem 为1G,价格为20元/月。 通过使用 Kubecost,需要添加云厂商说明的每种资源的基础价格,例如 CPU、Mem 价格。或者按照业务需要配置对应的比例,例如1C:1G 的价格比是3:1,CPU/Mem=3:1等。可以得知分摊到每种资源(CPU/GPU/Mem/PV/Network)的计费。 具体计算公式如下: **sum (normalized_resource_price[i] × resource_quantity[i]) = node_price** 因此得到,整个 Node 的价格为20元/月,按照 CPU 15元/月、Mem 5元/月进行分摊成本。 ### 评估成本效率 成本加权平均评估效率,由于每一种资源的成本权重不同(成本权重即为不同类型的资源,售卖的价格不同...阅读全文

Spinnaker 介绍 – Netflix 的持续交付平台

。每个服务都将自己的运行指标推送到 Atlas 中,用于绘制仪表盘和报警。Atlas 是Netflix的一个时间序列数据库。每个服务都将自己的日志发送到 ELK 集群中。每个内部服务除了deck 和 gate 必须用 mutual TLS,并且证书和认证通过 Lemur 进行管理。不允许任何外部流量进入内部服务中。所有的 API 调用必须经过 gate。每个外部服务(除了gate)都要支持 mTLS 或者 SSO。如果某个服务有数据存储的需求,那么只能存在自己的数据库中,服务之间不共享数据存储。 为了保证兼容性,Spinnaker 在开发过程中还会准守一些准则: 保证足够的单元测试和覆盖率。在 code review 的时候特别注意是否会破坏API兼容性。7×24 不间断的执行集成测试。有...阅读全文

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

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

RBAC 授权器举例,当请求进入时,授权器会将用户的初始状态缓存下来,然后用它来检索与 etcd 中的用户关联的所有 角色(Role)和 角色绑定(RoleBinding)。那么问题来了,Controller 是如何访问和修改这些资源对象的呢?事实上 Kubernetes 是通过 Informer 机制来解决这个问题的。 Infomer 是一种模式,它允许 Controller 查找缓存在本地中的数据(这份数据由 Informer 自己维护)并列出它们感兴趣的资源。 虽然 Informer 的设计很抽象,但它在内部实现了大量的对细节的处理逻辑(例如缓存),缓存很重要,因为它不但可以减少对 Kubenetes API 的直接调用,同时也能减少 Server 和 Controller 的大量重复性...阅读全文

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

21款必不可少的Ubuntu桌面应用程序

能也不如后者来得大。 Ubuntu Cleaner是被抛弃的Ubuntu Tweak应用程序的“Cleaner”部分的分支。使用该应用程序是帮助释放Ubuntu空间的好方法。它可以清除不需要的程序包,清理过时的应用程序配置,还能清理apt和Web浏览器缓存。 16. FeedReader RSS阅读器 我用两种方式来密切关注成百上千的应用程序、网站及其他开发项目:电子邮件(通过邮件列表)和RSS新闻源(通过Feedly)。如果你使用后者(或者即便不用),可能会有兴趣打量一下FeedReader。 FeedReader是一款GTK桌面RSS阅读应用程序,适用于Linux桌面。它并不是各方面都很完善,好几个地方还是不尽人意,但它是在浏览器标签中使用Feedly的比较好的工具。它可以通过专用...阅读全文

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

2017 年会是 Serverless 爆发之年吗

定运行。通过以一种松散编排的方式将函数和服务组合起来,能够构建易于理解、易于管理的复杂后端系统。 为 lambda 等计算服务编写的代码应该以无状态方式进行构建,这样会让无状态功能很强大,让平台得以迅速扩展,处理数量不断变化的请求或者事件。 设计基于推送的、事件驱动的管道可以构建满足任何用途的服务器架构。系统可以一开始就构建成无服务器,也可以逐步设计现有的单体型应用程序,以便充分发挥这种架构的优势。最灵活、最强大的无服务器设计是事件驱动型的。 构建事件驱动的、基于推送的系统常常有利于降低成本和系统复杂性,但是要注意,并不是任何情况下都是适当的或者容易实现的。 创建更强大的前端由于 Lambda 的定价基于请求数量、执行时间段以及分配的量,所以代码执行需要越快越好。数据签名的令牌让前端可以...阅读全文

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

我要彻底放弃 Debian 操作系统!-Michael Stapelberg

/reportbug.1.en.html)设置有效的电子邮件,或手动处理附件都是一件极其麻烦的事情 。 由于一些我不理解的原理,每次与debbugs的交互都会引发很多电子邮件。 除了技术实现之外,我永远也记不住Debian使用伪包来处理bug和进程的不同方式。我几乎很少用到它们,所以也没心思搞清楚如何设置它们,或它们使用了多少,但是它们却给我频添烦恼。 更好的方式是什么? Debian从自定义的bug跟踪程序切换到(任何一种)完善的工具。Debian围绕流程提供自动化。如果能以bug报告的形式提供这个过程中的文件跟踪和产出,那便再好不过了,而且主界面(例如Web表单)应该方便使用。 陈旧的基础设施:邮件列表归档 令我感到困惑的是,时至2019年,我们仍然没有一个方便浏览的邮件列表的归档。电子邮件在...阅读全文

博文 2019-03-22 17:01:23 Michael Stapelberg

在 Kubernetes 上扩展 TensorFlow 模型

/workloads/controllers/deployment/#scaling-a-deployment)。 - 使用[Pod 水平自动伸缩](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)(Horizontal Pod Autoscaler)进行自动扩展,它基于一组计算指标(CPU、GPU、)或用户定义的指标(如每秒请求)。 - 通过 TFJob 和 MPI Operator 对 TensorFlow 模型进行分布式训练。 - 使用 KFServing、Seldon Core 和 BentoML 扩展已部署的 TensorFlow 模型。 接下来,我将提供一些例子,说明如何使用这些解决方案中的一...阅读全文

最全 MongoDB 基础教程

MongoDB 创建数据库 - 格式:use DATABASE_NAME - use ruochen - db 创建数据库需要插入一条数据才会在列表中显示 - db.ruochen.insert({'name': '若尘'}) - show dbs 删除数据库 格式:db.dropDatabase() use ruochen db.dropDatabase() show dbs 创建集合 - 格式:db.createCollection(name, options) - name: 要创建的集合名称 - options: 可选参数,指定有关大小及索引的选项 字段 类型 描述 capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它...阅读全文

博文 2021-02-22 07:45:45 OSChina

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

(Kubernetes中的节点指服务器)负责管理集群的状态。 它运行Etcd ,它在将工作负载调度到工作节点的组件之间存储集群数据。 两个工人节点 工作节点是运行工作负载 (即容器化应用程序和服务)的服务器。 一旦工作人员分配了工作负载,工作人员将继续运行您的工作负载,即使主计划在调度完成后停止工作也是如此。 通过添加工作人员可以增加群集的容量。 完成本指南后,如果群集中的服务器具有足够的CPU和RAM资源供应用程序使用,您将拥有一个可以运行容器化应用程序的集群。 几乎任何传统的Unix应用程序(包括Web应用程序,数据库,守护程序和命令行工具)都可以进行容器化,并在集群上运行。 群集本身将在每个节点上消耗大约300-500MB的和10%的CPU。 设置群集后,您将向其部署Web服务器Nginx ,以确保它...阅读全文

博文 2019-05-13 22:47:39 debian.cn

WebAssembly:无需容器的 Docker (下)

$(pwd)/images/php/docroot:/docroot \ ghcr.io/vmware-labs/php-wasm:7.4.32-cli-aot -S 0.0.0.0:8080 -t /docroot 但是如果我们看 docker stats,我们只看到传统容器的数据。这之后可能会变化,因为 Docker+Wasm 现在是 beta 版特性。 所以,如果真的想看看发生了什么,可以改为监视对照组。 每个传统容器都有自己的控制组,如 docker/ee44...。另一方面,Wasm 容器作为 podruntime/docker 控制组的一部分包含在内,可以间接观察它们的 CPU 或消耗。$ systemd-cgtop -kP --depth=10 Control Group...阅读全文

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

分布式运行时 Dapr 知多少

微服务。 以上是Dapr官方GitHub仓库上对Dapr的简介。文字虽短,口气却很大,因为其除了涵盖了当前所有的技术热点:分布式、云、微服务,还自我标榜为:分布式应用运行时。分布式应用我们或多或少有些了解,运行时也听到不少,比如常见的语言运行时:Java 运行时,.NET 运行时,Go 运行时等等,那运行时又是什么东西?简要来说:运行时是程序运行依赖的执行环境。以.NET 程序运行时CLR为例,它为.NET应用程序提供了一个托管的代码执行环境负责应用程序在整个执行期间的管理、线程管理、安全管理、远程管理、即使编译等。 那分布式应用运行时,就是提供分布式应用运行所依赖的的执行环境。那运行分布式应用需要哪些环境依赖呢?回答这个问题,我们要先思考开发分布式应用的挑战是什么?明确了挑战,那就找到...阅读全文

Monit:开源服务器监控工具

不指向目录,monit将禁用对此条目的监视。如果Monit在被动模式下运行或者没有定义启动方法,Monit只会在错误时发送警报。 远程主机 CHECK HOST ADDRESS 主机地址可以指定为主机名字符串或点分十进制格式的IP地址字符串。例如,tildeslash.com或“64.87.72.95”。 系统 CHECK SYSTEM 的唯一的名称通常是本地主机名,而是可以使用任何描述性名称。如果使用变量$ HOST作为名称,它将扩展为主机名。此检查允许监控一般系统资源,如CPU使用率,总使用或负载平均。该唯一名称在邮件警报中用作系统主机名,在M/Monit中用作主机条目的初始名称。 自定义...阅读全文

博文 2023-04-12 15:21:43 阿里云开发者社区

Web前端知识体系精简

addEventLisener/attachEvent来进行绑定。 10、全局对象 window 在JS中,当一段JS代码在浏览器中被加载执行,JS引擎会在中构建一个全局执行环境,执行环境的作用是保证所有的函数能按照正确的顺序被执行,而window对象则是这个执行环境中的一个全局对象,window对象中内置了很多操作api和对象,document对象就是其中一个。关于JS执行环境的介绍请参考博客:深入理解JS执行细节 CSS 篇 css是用来对html进行修饰的一门语言。 1、选择器 css的选择器有很多种,常用的有类选择器、标签选择器、ID选择器、后代选择器、群组选择器、伪类选择器(before/after)、兄弟选择器(+~)、属性选择器等等。 2、定位 position 定位一般有相对定位(relative...阅读全文

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

Apollo 配置中心简单介绍

,服务端都会返回304 - Not Modified定时频率默认为每5分钟拉取一次,客户端也可以通过在运行时指定System Property: apollo.refreshInterval来覆盖,单位为分钟。客户端从Apollo配置中心服务端获取到应用的最新配置后,会保存在中客户端会把从服务端获取到的配置在本地文件系统缓存一份 在遇到服务不可用,或网络不通的时候,依然能从本地恢复配置应用程序可以从Apollo客户端获取最新的配置、订阅配置更新通知 4.6.1 配置更新推送实现 前面提到了Apollo客户端和服务端保持了一个长连接,从而能第一时间获得配置更新的推送。 长连接实际上我们是通过Http Long Polling实现的,具体而言: 客户端发起一个Http请求到服务端服务端会保持住...阅读全文

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

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

术实现了用户态和内核态的共享,所以性能好,我前期被这个观点误导了好久,后来下来了linux源码,翻了一下,并没有在epoll中翻到mmap的技术点,所以这个观点是错误的。这些错误观点的文章,国内不少,国外也不少,希望大家能审慎抉择,避免被错误带偏。 所以,epoll高性能的根本就是,其高效的文件描述符处理方式加上颇具特性边的缘触发处理模式,以极少的内核态和用户态的切换,实现了真正意义上的高并发。...阅读全文

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

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

zookeeper仅使用作为存储,所以不能存储太多东西。并发访问zk问题多最好单线程操作zk客户端,不要并发,临界、竞态问题太多。基于以上各种问题,所以提出了脱离zk的方案,转向自助研发强一致性的元数据解决方案,也就是KIP-500。KIP-500议案提出了在Kafka中处理元数据的更好方法。基本思想是"Kafka on Kafka",将Kafka的元数据存储在Kafka本身中,无需增加额外的外部存储比如ZooKeeper等。去zookeeper之后的kafka新的架构在KIP-500中,Kafka控制器会将其元数据存储在Kafka分区中,而不是存储在ZooKeeper中。但是,由于控制器依赖于该分区,因此分区本身不能依赖控制器来进行领导者选举之类的事情。而是,管理该分区的节点必须实现自我管理的Raft...阅读全文

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

提问的智慧 – 全文

:我组装的电脑(K6/233 CPU、FIC-PA2007 主板[威盛 Apollo VP2 芯片组]、Corsair PC133 SDRAM 256Mb )最近在开机20分钟左右、做内核编译时频繁地报错,提示SIG11 ,但在头20分钟内从不出问题。重启动不会复位时钟,但会整夜关机。更换所有未解决问题,相关的典型编译会话日志附后。 鉴于不是每个人都不能做到明智的提问,所以这里有一句话可以给到你启示:「所有的诊断专家都来自密苏里州」。美国国务院的官方座右铭则是「让我看看」(Show me)[15],对回复者而言,这并不是质疑,而只是一种真实而有用的需求,以便让他们看到与你看到一样的原始证据,目睹尽可能一致的东西,而不是你的片面的猜测与总结。(所以)让我们看看(Show me)。 【本章...阅读全文

博文 2009-10-01 13:18:00 debian.cn

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

果这个asset不健康,它仅仅会导致某个集群的运行中断,还是会影响全球的服务?插件还给用户特定的数据提供了空间,而不用占用负载的定义。 asset一般少于1kb数据,通常少于10kb,我们的最大值限制的是150kb。这个限制是为了让asset更容易被使用。这样,工具可以在里加载asset,无需担心这么做会造成过多的消耗。这个方案是受实体-组件系统[4]的启发。 asset的内容提供了足够的信息来构建建模资源的完整状态。具体来说,应该可以重新创建生产状态,而不必查看当前的生产状态——这是一个单向过程。 但是,所有的配置必须在asset里。比如,我们肯定有些情况需要MB级别的配置。这时,可以保存对外部数据源(比如包,数据库和版本控制)的引用。这些引用必须指向不可变外部数据。 在...阅读全文

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