不要光想着价格 QLC 与 TLC 闪存有什么不同
差,但是更便宜的成本、更大容量的优势是无法忽视的。随着技术的不断发展和成熟,QLC就像当年TLC一样从不被接纳到广泛认可也是早晚的事情. 其实不管是TLC还是QLC,只要价格够便宜,容量够大,速度够快,寿命有保障,总会获得消费者的喜欢,赢得属于自己的市场份额。 而对于HDD来说,QLC的出现将带来更大的威胁。或许真正QLC SSD普及之时,才是HDD 跟我们Say byebye之时。...阅读全文
差,但是更便宜的成本、更大容量的优势是无法忽视的。随着技术的不断发展和成熟,QLC就像当年TLC一样从不被接纳到广泛认可也是早晚的事情. 其实不管是TLC还是QLC,只要价格够便宜,容量够大,速度够快,寿命有保障,总会获得消费者的喜欢,赢得属于自己的市场份额。 而对于HDD来说,QLC的出现将带来更大的威胁。或许真正QLC SSD普及之时,才是HDD 跟我们Say byebye之时。...阅读全文
) 对style的操作(对不同的属性操作,影响不一样) 还有一种是用户的操作,比如改变浏览器大小,改变浏览器的字体大小等(回流+重绘) 4、本地存储 本地存储最原始的方式就是 cookie,cookie 是存放在本地浏览器的一段文本,数据以键值对的形式保存,可以设置过期时间。 但是 cookie 不适合大量数据的存储,因为每请求一次页面,cookie 都会发送给服务器,这使得 cookie 速度很慢而且效率也不高。因此cookie的大小被限制为4k左右(不同浏览器可能不同,分HOST),如下所示: Firefox和Safari允许cookie多达4097个字节,包括名(name)、值(value)和等号。 Opera允许cookie多达4096个字节,包括:名(name)、值(value)和等号...阅读全文
代表cpu使用的时间。例如: 九、Async-profiler的使用 和 火焰图分析 背景: 目前有一个kafka消费者工程,此工程会消费kafka中的消息,并通过fastjson解析该消息为java实体,然后存入到阻塞队列 BlockingQueue中。另外有若干个线程会从queue中批量拿消息,然后以批量形式写入到 elasticsearch 中。目前在使用中发现存在性能瓶颈,需要定位是该工程对消息转化处理较慢,还是写es操作比较慢。 9.1采集cpu profile数据 我们将代码回退到第一次测试的情况,并启动程序,并找到当前进程号(627891),然后通过如下命令进行采集,并转换为火焰图格式 svg。 ./profiler.sh -d 15 -i 50ms -o svg -e cpu...阅读全文
:避免重复。 Django是用Python编写的,因此其减少了太多中间层代码并突出提高了效率。Django可以支持云平台,使其成为Web开发中更受欢迎的选择。 Django主要特点 Django“自备军需”(Batteries-Included) Django基于“自备军需”的理念,您不必使用单独的库来实现常见功能,例如身份验证,URL路由,模板系统,对象关系映射器(ORM)和数据库模型迁移。 如果您正在使用或曾经用过Flask,您一定注意到了它需要调用其他库,如Flask-Login来执行用户身份验证。 Django不是这样。 自由的API 使用Django,很容易根据您的模型生成Python API。 只需一个简单的命令,不需要额外的编码就足以开始生成API了。 独特的管理页面 即使在网站...阅读全文
的,而虚拟机对于像运行 LAMP 堆栈这样的单一应用程序使用情况是更好的。 Linux 容器 vs 虚拟机 – 安全性 与容器相比,虚拟机提供了更多的安全性。这并不是说容器不能被保护,而是说,默认的虚拟机提供了更大的隔离。请记住,容器可以共享系统资源而虚拟机不行。 在运行容器时,可以采取一些措施来降低风险,包括避免超级用户权限,确保从可信来源获取容器,并且保持最新状态。有些容器是数字签名的,这有助于确定您可以从可信来源获取容器。 最后,你需要保持容器的单一功能职责。一旦你开始在一个容器下结合软件职责,你会发现还是使用虚拟机最好。重申一下,容器是用于单一用途的应用程序,虚拟机用于多用途的应用程序。坚持这种做法,你将在安全性和整体功能方面处于更好的状况。 Linux 容器 vs 虚拟机 – 选择...阅读全文
回绑定变量后的函数(也即闭包),此时即便生成闭包的环境(父函数)已经释放,闭包仍然存在,这个过程很像类(父函数)生成实例(闭包),不同的是父函数只在调用时执行,执行完毕后其环境就会释放,而类则在文件执行时创建,一般程序执行完毕后作用域才释放,因此对一些需要重用的功能且不足以定义为类的行为,使用闭包会比使用类占用更少的资源,且更轻巧灵活,现举一例:假设我们仅仅想打印出各类动物的叫声,分别以类和闭包来实现: 可以看到输出结果是完全一样的,但显然类的实现相对繁琐,且这里只是想输出一下动物的叫声,定义一个 Animal 类未免小题大做,而且 voice 函数在执行完毕后,其作用域就已经释放,但 Animal 类及其实例 dog 的相应属性却一直贮存在内存中: 而这种占用对于实现该功能后,则是没有必要...阅读全文
软件包,或者安装手动下载的软件包。 然而,它们都方便。使用得当,它们可以节省时间和精力,一些工具可以帮助你避免常见问题。确定自己有什么样的要求,然后选择最适合的工具。 原文标题:Improving Debian Linux Package Management: Seven Tools,51CTO译稿,中文原始链接这里。...阅读全文
Linux 安全性、项目管理及与其他领域结合发展 (1)近期勒索病毒肆虐全球,安全性方面,总会有人拿Linux 与Windows 相比。而 Jim 则不认可这种比较。他认为开发任何一个比较复杂的软件系统,都难免会有安全漏洞。 从安全性的角度来看,在 Linux 开发过程中会启动 CoreOS 项目,对所有代码进行同行评估,成千上万个开源开发者参与其中,对所有代码的安全性进行审议。由此希望通过审计的代码是最安全的,开发出的软件是安全可靠的。 “总而言之,安全是我们的任何项目的重中之重,非常关注与重视的一个问题,包括 Linux 的所有项目” (2)Linux 作为超大规模的项目,又是如何进行管理的呢? “每天我们贡献的代码数量会达到 1 万行,从中抽取 5 千行,还有1800行代码每天都是精心修改的...阅读全文
校验和校验已安装的Debian/Ubuntu软件包,为了避免在你的系统上安装和执行损坏的二进制文件或软件包文件,有必要对照软件包中存储的信息来校验文件系统上的文件。本文转自 51CTO...阅读全文
里是没有网桥存在,完全就是通过路由来实现,这个数据包也是先从veth设备对另一口发出,到达宿主机上的cali开头的虚拟网卡上,到达这一头也就到达了宿主机上的网络协议栈,另外就是当创建一个pod时帮你先起一个infra containers的容器,调用calico的二进制帮你去配置容器的网络,然后会根据路由表决定这个数据包到底发送到哪里去,可以从ip route看到路由表信息,这里显示是目的cni分配的子网络和目的宿主机的网络,当进行跨主机通信的时候之间转发到下一跳地址走宿主机的eth0网卡出去,也就是一个直接的静态路由,这个下一跳就跟host-gw的形式一样,和host-gw最大的区别是calico使用BGP路由交换,而host-gw是使用自己的路由交换,BGP这个方案比较成熟,在大型网络中...阅读全文
人类的生活? Sam Altman:AI终将渗入人类生活的方方面面。未来十年里,智能和能源的边际成本会迅速下降,趋近于零,而智能和能源又是其他各行各业的主要成本来源(当然,奢侈品除外)。[注:Sam Altman 是否提前知道了美国能源部在12月份宣布的可控核聚变的进展?] 整个社会的成本结构都会下降,正如之前多次科技革命的结果一样。在这种浪潮之下,很少有什么会一成不变。但有一点很重要,智能和能源成本只是趋近于零,而不是直接降为零。所以将来如果有人仍愿意花费巨额投资来购买智能和能源,他们得到的算力和能源的数量将突破想象。 设想一下,将来的能源使用成本下降10~100倍,智能使用成本下降1亿倍,而对能源和智能的资金投入则比现在多1000倍,那会是什么样的局面? Audience Member...阅读全文
性: 服务发现: 支持 DNS 与 RPC 服务发现,也提供原生 SDK 、OpenAPI 等多种服务注册方式和 DNS、HTTP 与 API 等多种服务发现方式。 服务健康监测: Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。 动态配置服务: Nacos 提供配置统一管理功能,能够帮助我们将配置以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。 动态 DNS 服务: Nacos 支持动态 DNS 服务权重路由,能够让我们很容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。 服务及其元数据管理: Nacos 支持从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静...阅读全文
inactive list,内核线程kswapd会定期将active list中的页面移至 inactive list中。如果系统的inactive的内存过大,可以通过如下操作对其做回收。sync; echo 3 > /proc/sys/vm/drop_caches虚拟内存========现代x86系统,计算机能够使用的内存会大于其物理内存的上限,依靠的就是虚拟内存机制。Linux支持虚拟内存机制和实模式机制。实模式下,计算机会直接申请物理内存, 虚拟内存机制下,系统会把磁盘当成内存的扩展,已增加可使用的内存大小。并通过映射map的机制,来保存和物理内存的真实对应关系。在磁盘和内存之间传送Page的活动叫做swapping或者页面调度(paging),被用作虚拟内存的磁盘分区称为swap。可以通过在线添加...阅读全文
的支持。可以将docker的/metrics端点暴露给插件: $ docker plugin install --grant-all-permissions cpuguy83/docker-metrics-plugin-test:latest $ curl http://127.0.0.1:19393/metrics 这个插件仅用于示范。它在主机的网络上运行了一个反向代理,能将请求转发给插件中的本地的指标套接字。在真实场景中,可能会将收集的指标数据发送给外部的服务,或者使它可以被一个服务如Prometheus访问并收集。 注意尽管指标插件在非实验性的daemon中可以使用,指标标签(metrics label)仍应该被看作是实验性的,可能在Docker未来的版本中发生改动。 日志驱动插件 添...阅读全文
存 比 DDR2 的快这么多,SSD 比磁盘快很多,ATI 的显卡是垃圾…… 如此等等。 程序语言也是一样的道理。对于初学者来说,其实没必要纠结到底要先学哪一种语言,再学哪一种。曾经有人给我发信问这种问题,纠结了好几个星期,结果一个语言都还没开始学。有这纠结的时间,其实都可以把他纠结过的语言全部掌握了。 初学者往往不理解,每一种语言里面必然有一套“通用”的特性。比如变量,函数,整数和浮点数运算,等等。这些是每个通用程序语言里面都必须有的,一个都不能少。你只要通过“某种语言”学会了这些特性,掌握这些特性的根本概念,就能随时把这些知识应用到任何其它语言。你为此投入的时间基本不会浪费。所以初学者纠结要“先学哪种语言”,这种时间花的很不值得,还不如随便挑一个语言,跳进去。 如果你不能用一种语言里面的...阅读全文
某最后一次部署挖矿脚本后,百度通过安全管理监控系统发现大量服务器运行异常,占用公司服务器的运算资源执行了挖矿程序,经过一番排查,最终确定了幕后的操盘手“安某”。 为此,百度还花费 2.7 万元请北京耐特网科技公司提供了应急服务,具体项目包括样本提取、样本分析、服务器日志提取并分析、追踪溯源、报告编写等。 2018 年 7 月,百度正式起诉“安某”,认为其犯有非法控制计算机信息系统罪。经法院的进一步核实,被告人“安某”虽对其行为性质提出辩解,但其到案后及在庭审过程中对其实施的作案过程均能如实交代,故应认定其具有如实供述的情节,同时结合其能退缴涉案违法所得,故可对其从轻处罚。 据此判决: 一、被告人安邦犯非法控制计算机信息系统罪,判处有期徒刑三年,罚金人民币一万一千元。 二、在案扣押的人民币十一...阅读全文
废话不多说,先来看看 Go 2.0 有哪些值得关注的内容: 最大程度保持对 1.x 的兼容,以避免分裂 Go 语言生态系统 采用增量升级的方式,而非单独发布重大更新版本 实施新的提案评估流程,以评估尚未解决且被标记为提案的 issue 将会在 Go 1.13 版本中选择 Go 2 部分的提案 背景 早在2017年的 GopherCon 大会上,Russ Cox(Go 核心开发团队的技术 leader)就已经正式开始思考 Go 的下一个大版本(相关文章)。当时官方非正式地将它称为 Go 2,但我们知道,所谓的 Go 2.0 并非一个单独的重大更新版本,而是通过“增量更新(incremental)”的方式以逐渐抵达 "Go 2.0"。所以本文对这个未来版本的称号 —— 也暂且用 Go 2 来描...阅读全文
-root 36.0G 9.3G 26.7G 26% /etc/hostname /dev/mapper/centos-root 36.0G 9.3G 26.7G 26% /etc/hosts ...... 验证没有问题,PodPreset 信息注入到 Pod 里面了,而我们的 Pod yaml 文件就非常简洁了,从而避免了某一个配置更改,所有相关的 Pod 都需要更新 Yaml 配置的麻烦,是不是很方便!咱们在更深入了解一下 PodPreset 实现的方式,此时获取 Pod 的 Yaml 文件看下。 # kubectl get pod busybox-hwy -n wanyang3 -o yaml apiVersion: v1 kind: Pod metadata: annotations...阅读全文
: 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集群的...阅读全文
,不要使用JS生成。所有用户生成内容(UGC)中的链接加nofollow属性。栏目、产品/文章页面主图加ALT文字,如没有人工填写,可与页面Title相同。禁止使用任何隐藏文字或链接。尽量避免使用表格(table),尤其是嵌套表格。 页面打开速度相关 在不明显影响视觉效果前提下,所有图片均需要最大程度压缩处理后才能使用。不要使用超出实际显示尺寸的图片(不要上传大尺寸图片,然后缩小尺寸显示)。页面纯文字代码(包括HTML、JS、CSS)不超过500K。特殊页面如首页可适当放宽。删除未使用的CSS代码。尽量合并CSS文件。慎用、少用JS。在主流浏览器测试JS是否拖慢页面打开速度。使用主流浏览器实际测试页面打开速度,应不超过3秒。条件允许的话,从多省市测试。 功能使用及代码 除非另行要求,网站所有页...阅读全文
vethxxx 这样的名字命名,从而将宿主机上的所有容器都连接到这个内部网络上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。 容器访问外部网络 请求通过 veth pair 到达 docker0 处,docker0 网桥开启了IP forwarding功能,将请求发送至宿主机eth0; 宿主机处理请求时,使用 SNAT 规则,将源地址替换成了宿主机 ip,然后把报文转发出去 外部访问容器 docker run -p 时,docker 实际是在 iptables 做了DNAT规则,实现端口转发功能。 1 2 3 4 5 # iptables -t nat -L Chain DOCKER (2 references) target prot opt source...阅读全文
提供关注点分离,并专注于特定功能,以减少意大利面条的依赖性和不可测的组件 对于Sidecar容器一般来说主要体现在以下4种角色: 代理。例如现在Istio中的Envoy。 通过这种Sidercar 模式,代理可以拦截进出主容器的流量从而Istio可以提取有关流量行为的大量信号作为属性。 Istio可以使用这些属性来执行策略决策,并将其发送到监视系统以提供有关整个网格行为的信息。 Sidecar代理模型还允许您将Istio功能添加到现有部署中,而无需重新构造或重写代码。 适配器。适配器容器对输出进行标准化。考虑监视N个不同应用程序的任务。可以使用不同的导出监视数据的方式来构建每个应用程序。 (例如JMX,StatsD,特定于应用程序的统计信息),但每个监控系统都希望其收集的监控数据具有一致且统...阅读全文
表驱动节点调度(便于支持QoS)而不是 hardcode pipeline Graph 工作流程 现在来说一下整体上 graph 框架的工作流程。如上图所述的一样,一个 graph 是由不同的节点 (node) 所组成的。与传统的标量模型相比,两个框架其实都包含一样的逻辑。最大的不同是 graph 框架中 node 节点在运行时与其他 node节点的交互方式,或者具体地来说,是报文在node节点中的传递方式。 一个 node 中的 报文 传送到不同的 node,home run 情况 (优化案例) 以及正常 enqueue情况;动态增加 node 的 objects 队列 大小 Node 的 Object 队列大小 默认情况下,每个 node 都有一个...阅读全文
] TASK [install Pod network] ***** changed: [master] PLAY RECAP **** master : ok=5 changed=4 unreachable=0 failed=0 要检查主节点的状态,请使用以下命令通过SSH连接到该节点: ssh sammy@master_ip 进入主节点后,执行: kubectl get nodes 您现在将看到以下输出: OutputNAME STATUS ROLES AGE VERSION master Ready master 1d v1.14.0 输出指出master节点已完成所有初始化任务并处于Ready状态,从该状态开始,它可以开始接受工作节点并执行发送到API服务器的任务。 您现在可以从本地计算机添加...阅读全文
被包含 db.ruochen.aggregate( { $project: { _id: 0 title: 2, by: 1, }} ); 如此即可不包含_id, 非0可表示显示字段,负数也可以表示显示该字段 $match 获取分数大于70或小于等于90的记录,然后把符合条件的记录送到下一阶段$group 管道操作符进行处理 db.ruochen.aggregate([ {$match: {score: {$gt: 70, $lte: 90}}}, {$group: {_id: null, count: {$sum: 1}}} ]) 当 match 条件和 group 同时存在时,顺序会影响检索结果,必须先写 match 在前面 $skip 过滤前5个文档...阅读全文
也有一个特殊的状态,叫manual。 手动操作指令默认是不阻塞的。如果你想要手动操作指令产生阻塞,首先需要在job的配置文件.gitlab-ci.yml中添加allow_failure:false。 可选的手动操作指令默认设置allow_failure:true。 可选动作的状态不影响整个pipeline的状态。 手动操作指令被认为是写操作,所以当前用户触发操作时,必须拥有操作保护分支的权限。换句话说,为了触发一个手动操作指令到pipeline中正在运行的指定分支,当前用户必须拥有推送到这分支的权限。 enviroment 注意: GitLab 8.9 开始引入。 更多关于environment说明或者示例可以查看 documentation about environments...阅读全文
0.0.0.0:8080 -t /docroot 可以访问 http://localhost:8086 并使用由 PHP Wasm 解释器服务的 WordPress,这回是在 Docker 容器中运行。通过 mod_wasm in Apache HTTPD 服务 WordPressApache HTTPD 是使用最广泛的 HTTP 服务器之一。 现在有了 mod_wasm,它还可以运行 WebAssembly 应用程序。 为了避免在本地安装和配置它,我们准备了一个容器,其中包含 Apache HTTPD、mod_wasm 和 WordPress。docker run -p 8087:8080 projects.registry.vmware.com/wasmlabs/containers/php-mod...阅读全文
开源社区是个独特的存在。它虽然结构松散但却又切实有效,为社会提供便利好用的产品却不以利益为目的,将志趣相同的人们聚集在一起但又完整地保存了每一个个体的独特性...... 这些开源社区就像是一场场风格迥异的社会实验。 其中,Debian 社区是一个典型代表。作为 Linux 最早的发行版本之一,诞生于1993年的 Debian 可以算是开源社区中的“活化石”。这也令 Debian 在机制、行事和文化等方面都体现出了一定的“古典”特质。 最近,Debian 社区正在酝酿一件大事 —— 改革自己的决策机制。一直以来,Debian 的决策机制都饱受诟病,不少优秀的开发者因此离开,这样的变革或许不可避免。 01 离开 “长久以来,Debian 都难以作出改变。” 2014年的时候,Joey Hess...阅读全文
己的自定义执行代码,而是使用统一的执行层,统一之后方便审计,并将应用程序开发人员的关注点与运营和安全团队的关注点分离。Kubernetes 零信任我们必须从第一原则重新思考身份,以任意表达性策略的形式来将信任具象化,并将新的执行机制渗透到基础设施的各个层面。面对这些的要求,我们不可避免地经历短暂的恐慌。前面是不是提到需要在 2024 财年之前实现?好消息是,至少对于 Kubernetes 用户来说,采用零信任的某些方面要容易得多。尽管有缺陷和复杂性,Kubernetes 是一个具有明确范围、定义良好的安全模型和明确的扩展机制的平台。这使其成为零信任实施的成功领域。在 Kubernetes 中解决零信任网络的最直接方法之一是使用服务网格。服务网格利用了 Kubernetes 强大的...阅读全文
PodName,Sandbox容器ID,NameSpace,VPC IP等对应关联信息进行额外存储。这样当进入DEL操作后,只需要通过kubelet传入的PodName,Sandbox容器ID和NameSpace即可找到VPC IP,然后通过UCloud 公有云相关API删除之,无需依赖NETNS操作。 考虑到问题的根因是出现在kubelet源码中的SyncPod函数,UK8S团队也已修复kubelet相关源码并准备提交patch给Kubernetes社区。 写在最后 Kubernetes依然是一个高速迭代中的开源项目,生产环境中会不可用避免遇见一些异常现象。UK8S研发团队在学习理解Kubernetes各个组件运行原理的同时,积极根据现网异常现象深入源码逐步探索出问题根因,进一步保障UK8S服务的稳定...阅读全文
法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。 分治法:若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。 总结: 不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。...阅读全文