InfraPub 为您找到相关结果 490

Manjaro Linux的两项大胆举措

,那么同样地,Manjaro 将一个不开源的 FreeOffice 引入,也可以让 Linux 上的协作效率提高,“这个桌面发行版的开发人员了解真正重要的是拥有适的工具来完成工作,无论它们是开放源代码还是封闭源代码的。” 同时,Manjaro 也没有把开源方面的选择封死,如果不喜欢使用闭源的工具,那么还是可以使用 LibreOffice,或者如果不喜欢像 Manjaro 这种使用了不开源项目的 Linux,那么也可以选择其它发行版。...阅读全文

博文 2019-10-05 16:24:38 debian.cn

Debian 公布关于支持非 systemd 初始化系统的投票结果

策略要求一致,并且通常建议软件包不应依赖于其他软件包的实验性或不受支持的(在 Debian 中)功能。软件包可能会包括对 systemd 以外的其他 init 系统的支持,并且可能包括其使用的任何 systemd 特定接口的替代物。维护人员使用其常规的程序来确定要引入的补丁。Debian 致力于使用对 init 系统做出不同选择的衍生产品。和我们与下游的所有交互一样,相关的维护人员将与下游一起工作,以找出哪些变化适加入到 Debian 中,哪些变化应该完全保留在派生工具中。...阅读全文

博文 2019-12-29 13:53:51 debian.cn

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

使用以下命令: disper -s #仅用于单屏 disper -S #仅用于外屏 #如果工具栏被弄乱,按 ALT F2 键,然后敲回车 如果想要锁定你的 PC,可以同时按下 CTRL+ ALT+ L 键,或通过以下命令: xtrlock Kodachi 附带了许多预安装的应用和工具,你可以通过单击来更改 Tor 的出口节点国家,以及重置你的 DNS 服务器。同时,你也不必担心你的无线或显示驱动程序不匹配,Kodachi 已经为我们成了大多数,常用的驱动程序。 我们可以在哪使用 Kodachi: 个人计算机桌面或直接从(U盘 和 DVD 启动)使用。 公司的计算机上(从 U盘 和 DVD 启动)使用。 网吧(从 U盘 和 DVD 启动)使用。 酒店或旅行期间(从 U盘 和 DVD 启动)使...阅读全文

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

如何在 Debian 上添加和删除用户

usermod的命令: usermod -aG sudo sammy 该-aG此选项告诉usermod将用户添加到上市团。 使用 groups 命令来验证你的用户是现在的成员sudo组: sammy : sammy sudo 现在,您的新用户能够使用管理权限执行命令。 以新用户身份登录时,可以像常规用户那样通过键入命令来执行命令: ls ~ 您可以通过键入执行具有管理权限的命令sudo在命令前: sudo ls /root 前缀时使用命令sudo ,会提示你输入密码。 输入该发出的命令, 而不是 root用户的密码的用户帐户的密码。 在/ etc / sudoers中指定显式用户权限 作为替代把你的用户Sudo组中,你可以使用visudo命令,它会打开一个名为的配置文件/etc/sudoers系统的缺...阅读全文

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

Terraform 学习总结 — Terraform 简介

Plans) Terraform 有一个 plan 步骤,它生成一个执行计划。执行计划显示了当执行 apply 命令时 Terraform 将做什么。通过 plan 进行提前检查,可以使 Terraform 操作真正的基础结构时避免意外。 资源图(Resource Graph) Terraform 构建的所有资源的图表,它能够并行地创建和修改任何没有相互依赖的资源。因此,Terraform 可以高效地构建基础设施,操作人员也可以通过图表深入地解其基础设施中的依赖关系。 自动化变更(Change Automation) 把复杂的变更应用到基础设施中,而无需人工交互。通过前面提到的执行计划和资源图,我们可以确切地知道 Terraform 将会改变什么,以什么顺序改变,从而避免许多可能的人为错误。 安装...阅读全文

TLS1.3 正式版发布 — 特性与开启方式科普

互联网工程指导委员会(IETF)释出了传输层安全性协议的最新版本 TLS 1.3。TLS 被广泛用于创建安全连接,TLS 1.3 是基于 TLS 1.2,主要区别是移除了较少使用的弱加密算法,移除 MD5 和 SHA-224 哈希支持,请求数字签名,成 HKDF,移除许多不安全或过时特性的支持,不再支持静态 RSA 密钥交换,握手将默认使用前向安全 Diffie-Hellman,客户端只需要一次往返就能与服务器建立安全和验证的连接,等等。Firefox 和 Chrome 都已经支持 TLS 1.3 的草拟版本。 TLS 1.3是一种新的加密协议,它既能提高各地互联网用户的访问速度,又能增强安全性。我们把使互联网实现安全通信的基础性技术称为传输层安全协议(TLS)。TLS是安全套接层协议...阅读全文

博文 2018-08-14 14:40:05 debian.cn

DevOps 越来越流行,2019 年这八大趋势值得关注

来看,DevOps 的采用率从 2015 年到 2016 年增加了约 8%,预计这一数字将在 2019 年大幅增长。 根据 Statista 的报告,很多商业组织正在采用 DevOps,2018 年增长率高达 17%,而 2017 年则为 10%左右。 你可以在 RightScale 上查看完整的报告。Forrester 的报告中也明确提到了 2018 年将是 DevOps 年。我们看到了将影响来年 DevOps 发展的八个事实。 焦点从 CI 管道转到 DevOps 装配线 管道为应用程序提供了从源码控制到生产环境的一套完整的可视化视图。你可以在某个地方看到所有的内容。现在不仅要做 CI(持续成),还要做 CD(持续交付)。企业正投入时间和精力,以便更多地了解如何自动化完整的软件开发过程...阅读全文

博文 2018-12-10 22:49:57 debian.cn

Gitlab CI 配置文件 .gitlab

。 默认情况下,job artifacts 只正对成功的jobs收。 artifacts用于指定成功后应附加到job的文件和目录的列表。只能使用项目工作间内的文件或目录路径。如果想要在不通的job之间传递artifacts,请查阅依赖关系。以下是一些例子: 发送binaries和.config中的所有文件: artifacts: paths: - binaries/ - .config 发送所有没有被Git跟踪的文件: artifacts: untracked: true 发送没有被Git跟踪和binaries中的所有文件: artifacts: untracked: true paths: - binaries/ 定义一个空的dependencies可以禁用artifact传递: job...阅读全文

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

技术部门的 SEO 规范

为客户提供SEO顾问服务的时候,经常遇到一些作为外部顾问不方便全程参与的情况。比如有的公司要新建网站,或者现有网站推到重来,问我能否从一开始就参与,提供SEO建议。 网站规划设计阶段就考虑SEO当然是好事,但作为一个远在异国的顾问,参与到这种需要大量深度讨论、沟通、协调的过程中,实在是不好操作,内部SEO人员更适这种工作。 有的客户公司规模比较大,技术开发、内容、SEO等各部门是分开的,SEO部门的很多需求是要提交给技术、运营等部门实施的。反过来,其它部门的需求也由技术部门实施,但可就不一定经过SEO部门同意了。这个过程中就可能产生对SEO的不良影响。 也有的公司人员流动频繁,即使原先的开发人员都经过SEO培训,也还是会有完全不了解SEO的新人加入团队。 这些情况都需要有一个技术部门必须...阅读全文

博文 2019-03-28 13:58:51 debian.cn

利用 NAT VPS 进行流量中转

转机的设置,并默认已按初始化配置文章对服务器进行了配置。本文将介绍四种方法:firewalld,UFW,iptables,和 socat(推荐)来进行流量中转,根据需要选取其中一种方法操作即可。亦可根据需要,将目标机设置为只允许中转机访问。其中,firewalld,UFW,iptables 均可对 TCP 和 UDP 进行转发,而 socat 还可以对包含域名的地址进行转发。 准备购买适的 NAT VPS,此处提供一些服务商了解 NAT VPS 的基本使用方法,例如搞清楚 NAT VPS 一般需要在服务商处查看端口映射的设置基础 Linux 操作知识,并了解 vim 编辑器的基本使用方法 使用 firewalld 进行中转此方法在 CentOS 下较为简便(CentOS 8 默认使用...阅读全文

博文 2021-03-11 21:16:11 Silearner

百度运维工程师挖矿实录:四个月用155台服务器挖矿赚10万判3年

余台服务器下载了挖矿脚本。 而挖矿脚本可以把百度公司的运算资源上传到哈希网站,哈希网站通过其上传的运算资源挖取门罗币,最后根据其上传运算资源的多少,以比特币的方式向其结算。 最后,从哈希网站将比特币提现到 otcbtc.com 网站,通过这个网站将比特币卖了约 10 万元人民币。目前在哈希网站的钱包里,还存有约 1.44 个比特币,在 otcbtc.com 网站里还存有大概 1.5 个比特币。以现在的币价来算,1.44 个比特币相当于人民币 5 万元,结 2018 年的币价,这样算下来,其实“安某”也不过挖了 5 个左右的比特币,并不算多。 用网友的话来说:“155 个服务器,获利 10 万,这手段着实不甚高明”。 百度损失 2.7 万,“安某”获三年牢狱之灾 2018 年 6 月初,在安...阅读全文

博文 2020-03-17 20:42:41 debian.cn

互联网协议正在发生变化

TLS 1.3 的相关章节。 最终,HTTP/2 允许多个主机的请求被 并到一个连接上,通过减少页面加载所使用的连接(从而减少拥塞控制的场景)数量来提升性能。 例如,你可以对 www.example.com 建立一个连接,也可以将这个连接用于对 images.example.com 的请求。而未来的协议扩展也允许将其它的主机添加到连接上,即便它们没有被列在最初用于它们的 TLS 证书中。因此,假设连接上的通讯被限制于它初始化时的目的并不适用。 值得注意的是,尽管存在这些变化,HTTP/2 并没有出现明显的互操作性问题或者来自网络的冲突。 TLS 1.3 TLS 1.3 刚刚通过了标准化的最后流程,并且已经被一些实现所支持。 不要被它只增加了版本号的名字所欺骗;它实际上是一个新的 TLS 版本...阅读全文

如何写好技术文档 — 来自十多年的文档经验总结

,它的价值马上就体现出来了。而写一份文档,随着时间的推移,它的价值才会逐渐体现出来。 你可能只写一次文档,将来它会被阅读上百次、上千次,因为一份好的文档可以在未来替你向别人回答类似下面这些问题。 1. 为什么当时是这么决策的? 2. 为什么代码是这样实现的? 3. 这个项目里都有哪些概念? 4. …… 写文档同样对于写作者也有非常大的收益: - 帮你构思规范化API: 写文档的过程也是你审视你API的过程,写文档时会让你思考你API设计是否理,考虑是否周全。如果你没法用语言将API描述出来,那么说明你当前的API设计是不理的。 - 文档也是代码的另一种展现: 比如你两年后回过头来看你写过的代码,如果有注释和文档,你可以很快速理解代码。 - 让你的代码看起来更专业: 我们都有个感觉,只要文档...阅读全文

博文 2021-07-30 16:15:13 joseph

Debian Jessie、Stretch 下安装配置 PHP7.2

PHP 7.2.0 已于 2017 年11月30日正式发布GA版,大家可以第一时间尝鲜了。这里我们介绍如何在 Debian 9 "Stretch" 上安装配置 PHP-7.2,以便大家及时升级。目前 Debian.cn 全站已稳定运行在 PHP-7.2 版本中。 本教程使用以下系统及组: Debian 9 stretch 、Debian 8 Jessie、Ubuntu 16.04 LTS、Ubuntu 14.04 LTS / PHP-7.2 、PHP-7.1、PHP-5.6 安装 PHP-7 Ondřej Surý 的 PHP PPA 为 Ubuntu 16.04/14.04 提供了 PHP-7.2 版本,也通过个人网站为 Debian 9/8 提供 PHP7.2 版本。Ondřej...阅读全文

博文 2017-12-16 14:16:25 debian.cn

Memcache UDP反射放大攻击技术分析

DDoS的主流。即使在反射类DDoS中,也只占 1% 以下(按攻击事件计),排在 DNS、CLDAP、NTP、SSDP、CharGen、L2TP、BitTorrent、Portmap、SNMP的后面。 我们在现网中对 Memcache DRDoS 攻击方式的测试结果 我们对现网实际环境做了测试,结分析我们捕获的实际攻击载荷,有以下内容值得关注: 这种反射攻击的放大比率,在理想的测试环境中,可以稳定的测得 1k~60k之间的放大倍数; 在现网实际环境中, 60k 的放大倍数,也是可以稳定的测得的; 上述实测结果,与最初报告者0kee team的估计、US-CERT安全通告中的提法,基本是一致的; 此外我们分析了现网实际发生的攻击负载。到目前为止,部分负载的构造是有问题,可能会导致memcache服...阅读全文

博文 2018-03-02 09:20:52 debian.cn

Debian下编译安装Golang

我的Debian是用来工作的,因此用的是稳定源。稳定源的优点是,软件经过充分的测试,处于稳定版本。这种状态对于绝大多数软件,都是最适的。 但是,对于一些需要最新版本的软件来说,稳定源太过于滞后。 官网不仅连接不稳定,二进制发布包也不够全。 目前(2016),Debian的稳定源只能安装go1.3版本。如果需要最新的版本,只能自行从源码编译安装。 卸载旧版本 sudo apt-get remove golang sudo apt-get autoremove 源码下载 git clone https://github.com/golang/go.git 如果没有Git,必须自行解决;如果没有gcc,也需要自行安装。 此外,golang/go这个库实在太大,近200MB。完整从GitHub上...阅读全文

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

Debian 9.3上安装和配置 Observium 监控平台

Observium是一个免费的开源网络管理和监控工具,可用于监控所有的网络设备。 它是用PHP编写的,使用SNMP从连接的设备收数据并使用Web界面监视它们。 Observium支持大量的网络硬件和操作系统,包括Linux,Windows,FreeBSD,思科,戴尔,NetApp等等。 Observium提供了一个功能强大,简单易用的界面来监视网络的健康和状态。 在本教程中,我们将解释如何在Debian 9服务器上安装和配置Observium。配置需求: 一个新的Debian 9服务器安装在您的系统上。 在您的服务器上设置一个根密码。 入门 首先运行以下命令,将系统更新到最新的稳定版本: apt-get update -y apt-get upgrade -y 系统更新后,重新启动系统以...阅读全文

博文 2017-12-30 11:35:21 debian.cn

Linux 系统 vim 编辑器使用简明教程

出插入模式) a //在当前光标位置的右边添加文本 i //在当前光标位置的左边添加文本 A //在当前行的末尾位置添加文本 I //在当前行的开始处添加文本(非空字符的行首) O //在当前行的上面新建一行 o //在当前行的下面新建一行 R //替换(覆盖)当前光标位置及后面的若干文本 J //并光标所在行及下一行为一行(依然在命令模式) 三、移动光标(vi命令模式下使用) vi 可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母 h 、 j 、 k 、 l ,分别控制光标左、下、上、右移一格。 按 Ctrl+b :屏幕往后移动一页。 按 Ctrl+f :屏幕往前移动一页。 按 Ctrl+u :屏幕往后移动半页。 按 Ctrl+d :屏幕往前移动半页。 按数字 0 :移...阅读全文

博文 2015-07-25 16:33:04 debian.cn

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

tmux 之外如何进行控制 session 会话:session是一个特定的终端组。输入tmux就可以打开一个新的 session tmux new -s session_name 创建一个叫做 session_name 的 tmux session tmux attach -t session_name 重新开启叫做 session_name 的 tmux session tmux switch -t session_name 转换到叫做 session_name 的 tmux session tmux list-sessions / tmux ls 列出现有的所有 session tmux detach 离开当前开启的 session tmux kill-server 关闭所有...阅读全文

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

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

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

为什么 Django 能持续统治 Python 开发世界

ATOM feeds 使用 Django,你可以通过创建一个简单的Python类来快速创建 RSS 和 ATOM feeds。 在数据库中自动创建表 如果你的数据库中缺失了某一个表,你可以通过执行 Django 的迁移命令来自动创建它。 容易的数据迁移 数据迁移是 Django 中最有用的功能之一。通过使用 Django 的迁移方法,你可以在短时间内改变一个数据库模式。同样也容易就能跟踪你的数据库模式和相关的改变。为数据迁移所做的命名能够帮助你进行版本控制,还有很多选项可以用来并版本和进行修改。 安全性 Django非常安全,该框架默认情况下可以防止 XSS 攻击、CSRF 攻击,SQL 语句注入、点击劫持、用户管理、cookies、邮件标头注入、密码攻击、目录遍历攻击等等。 Django有一个...阅读全文

博文 2017-07-21 14:15:11 debian.cn

六个开源软件开发的潜规则

多开源项目的贡献者并没有遵守。这样做的开发者不仅可以为成功地推动他们自己的项目,而且也有助于开源社区。 作者简介: Matt Hicks 是 Red Hat 软件工程的副主席,也是 Red Hat 开源作团队的奠基成员之一。他历时十五年,在软件工程中担任多种职务:开发,运行,架构,管理。 【via: http://www.infoworld.com/article/3156776/open-source-tools/the-6-unwritten-rules-of-open-source-development.html 原作者:Matt Hicks 中文译者:Taylor1024】...阅读全文

博文 2017-05-20 10:27:11 debian.cn

深入学习golang — channel

Serve(queue chan *Request) { for req := range queue { sem <- 1 go func(r *Request) { process(r) <-sem }(req) } } 至少,这样的代码不会让一个go的初学者不会迷糊,另外,从变量的作用域角度,也更符常理一些。 在实际的C/C++编程中,我们倾向于工作线程在一开始就创建好,而且线程的数量也是固定的。在go中,我们也可以这样做: func handle(queue chan *Request) { for r := range queue { process(r) } } func Serve(clientRequests chan *Request, quit chan bool...阅读全文

博文 2021-01-25 12:39:17 博客园

Debian 成为主流 Linux 操作系统的七个原因

。我满足于坚持使用默认设置,不过我很欣赏这一点:Debian提供了一种选择,然后放心让用户做出正确的选择。 4.不一样的说明文档 Debian的说明文档散布于无数个网站,并不经常被讨论。然而,这些年来,我发现,如果我将“Debian”添加到我的互联网搜索,选择近些年来的结果,几乎总是会找到一个网页给出详细的逐步说明,帮助解决我要解决的那个问题。 3.迅速修复错误 我没听说过另外哪个发行版像Debian这么迅速地应对安全或者技术问题。无论Debian维护人员是单枪匹马还是团队作,他们的响应时间表明了勤勤恳恳的工作态度,值得用户依赖。如果说Debian有时似乎比其他发行版更频繁地更新,那不是由于它有更多的错误,而是由于被其开发人员疏忽的错误比较少。 2.控制安装环节 Debian很早以前就取得了...阅读全文

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

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

:#influxdb部分配置文件 #描述:内存快照的冷冻写入周期,默认10m #场景: 当创建新的shard分片开始接受数据之后,上个shard分片进入冷冻期, #冷冻期的shard分片不再接收写入的请求,10分钟之后,会将内存里冷冻shard的cache进行落盘操作 #应用: 本文设置为30分钟。个人认为时间越短,会越快释放上个shard的内存cache cache-snapshot-write-cold-duration = "30m" #描述: 使用全量策略压缩冷冻期分片的周期,默认4h #场景: 当shard进入冷冻期后,会经过4h,开始进行全量压缩策略,进一步减少shard落盘数据占用的空间 #与cache-snapshot-write-cold-duration配使用 #可以从日志中看到,新分片...阅读全文

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

中国开源人访谈系列之:清风博主

提问者为Linuxstory.org的华华,回答者即为清风博主老师。之前常逛Linux社区的同学,对这个ID应该很熟悉。 A.您与Linux的那些事 1.清风老师能简单的介绍下您自己吗? 答:中学地理老师,Linux爱好者,Gentoo用户,70后 来张几年前上课摆拍的工作照吧 2.您是因为什么喜欢上折腾Linux的呢?遇到最大的困难是什么呢? 答:说来话长。初识Linux是在参加工作近10年之后,之前都没听说过Linux。真正知道Linux,是因为自学了点asp,后来在搜索如何搭建更好的网站环境时,才知道了还有这么一个神奇的系统。2008年,有了笔记本电脑后,才尝试安装,发现这个系统太适拿来折腾了!从入门级的Ubuntu到Gentoo,桌面环境从gnome2、unity、gnome3...阅读全文

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

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

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

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

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 的区别与联系

社交巨人Facebook使用Linux和Btrfs的姿势

硬件本身存在的问题,例如静默数据损坏。事实上,通过使用Btrfs我们发现了一些较为严重的硬件bug,这对Btrfs来说也是一个利好。 Linux.com:刚才我们聊了Facebook使用Linux的情况,我比较好奇您怎么看待和使用原生内核,毕竟大家都是根据实际生产环境的需求来fork一个内核的分支,鲜有人使用原生版本? Chris Mason:从Linux的角度来看,我们的主要目标是尽可能和原生内核保持一致——我们的目标是至少每年升级一次内核,我们还试图进一步缩短这个更新周期。我们有一个上游优先策略,在使用一个主线更新之前我们要先了解它。如果我们想添加一个特性到Linux内核中,我们首先会把它并到内核的主线更新中。 Linux.com:那为什么还需要fork一个自己的版本? Chris...阅读全文

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

什么是线程安全,以及并发需要知道的几个概念

的资源一直不释放的话,那么其他阻塞的线程就都不能工作了。 非阻塞则相反,强调的是线程之间并不互相妨碍,所有的线程都会不断尝试向前执行。 死锁、饥饿和活锁这三种情况表示的是多线程间的活跃状态,对于线程来说,以上的情况都是 “非友好” 的状态。 1、死锁一般是指两个或者两个以上的线程互相持有对方所需的资源,并且永远在等待对方释放的一种阻塞状态。例如有两个线程A和B同时共享临界区的资源C,当A占用C时,B处于阻塞状态,然而A的释放需要用到B的资源,这样一来,就变成了A一直在等待B,B也一直在等待A,互相之间永远在等待对方释放的状态。 一般来说,死锁的发生是由于程序的设计不理导致,而且死锁很难解决,最好的方式就是预防。 2、饥饿是指某一个或者多个线程因为种种原因无法获得所需的资源,导致一直无法执行...阅读全文

博文 2018-12-31 20:44:06 debian.cn

Java Annotations详解

(@Deprecated修饰)的方法时。 创建你自己的注释 创建自己的注释是有可能的。注释被定义在它们自己的文件中,就像Java中的类或接口一样。下面是一个例子: @interface MyAnnotation { String value(); String name(); int age(); String[] newNames(); } 这个例子定义了一个包含四个元素的叫MyAnnotation的注释。 注意,每个元素的定义都很像接口中的方法定义。你可以使用原始数据类型定义元素的数据类型,你也可以使用数组定义元素的数据类型。但是不能使用复对象(Complex Object定义元素的数据类型。 要使用上面自定义的注释,可以这样做: @MyAnnotation( value="123", name...阅读全文

博文 2013-03-02 08:04:55 CSDN博客

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

/src:cairo) | 修正图像成器中掩码的使用 [CVE-2020-35492] | | [choose-mirror](https://packages.debian.org/src:choose-mirror) | 更新镜像列表 | | [cjson](https://packages.debian.org/src:cjson) | 修正cJSON_Minify中的无限循环 | | [clevis](https://packages.debian.org/src:clevis) | 修复initramfs创建;clevis-dracut。安装时触发initramfs的创建 | | [cyrus-imapd](https://packages.debian.org/src:cyrus-imapd...阅读全文

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

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

最近游戏已上线运营,进行服务器内存优化,发现一个非常奇妙的问题,我们的认证服务器(AuthServer)负责跟第三方渠道SDK打交道(登陆和充值),由于采用了curl阻塞的方式,所以这里开了128个线程,奇怪的是每次刚启动的时候占用的虚拟内存在2.3G,然后每次处理消息就增加64M,增加到4.4G就不再增加了,由于我们采用预分配的方式,在线程内部根本没有大块分内存,那么这些内存到底是从哪来的呢?让人百思不得其解。 探索 一开始首先排除掉内存泄露,不可能每次都泄露64M内存这么巧,为了证明我的观点,首先,我使用了valgrind。 valgrind --leak-check=full --track-fds=yes --log-file=./AuthServer.vlog & 然后启动测试...阅读全文

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

下一代时间同步服务 Chrony 详解

服务器的信息 这里需要注意的是第二个参数,* 代表当前同步的源,- 代表通过组算法计算后排除的源。 root@hk:~# chronyc sources -v 210 Number of sources = 4 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz...阅读全文

博文 2021-01-04 08:41:14 debian.cn

SVN切换分支用法汇总

,以避免出现代码丢失等问题。在切换分支的时候,我们需要确保其他人都知道这个操作,并且保证他们的代码状态是干净的。六、SVN切换分支的优缺点在软件开发中,我们需要经常进行分支管理,因此,SVN的分支管理功能就显得尤为重要了。下面我们来看一下,SVN切换分支的优缺点。1. 优点SVN切换分支的最大优点就是方便快捷。通过SVN我们可以很方便地将工作副本切换到不同的分支,这样可以让我们更加高效地进行代码管理和开发工作。此外,SVN还提供了完善的分支并机制,可以帮助我们更好地保持代码的稳定性。2. 缺点SVN的缺点主要体现在以下几个方面:(1)SVN对源代码有一定的限制;(2)SVN操作过程较为繁琐;(3)SVN的并发处理能力相对较差。七、总结综上所述,SVN切换分支是一项非常重要的基础操作,在软件开...阅读全文

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

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

no LVM-Thin images,rootdir raw no yes yes 可以看到,LVM-Thin 支持快照和克隆,但是不能共享了,没事,我不需要共享给别的节点,我没用群。 但是添加 LVM 和 添加 LVM-Thin 的步骤都记录下。 如果是添加 LVM如果是要添加 LVM,只需要到 Datacenter - Storage点击 Add:LVM 123Base storage: Existing volumn groupsVolumn group: hddID: 随便取名 这样添加后,容量是 hdd 的容量, 2.73T , 但是会显示已经占用了 100G。 Usage 3.59% (100.20 GiB of 2.73 TiB) 如果是添加 LVM-Thin添加 LVM...阅读全文

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

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

) evictSandboxes(evictTerminatedPods bool) error { // 1、获取 node 上所有的 container containers, err := cgc.manager.getKubeletContainers(true) if err != nil { return err } // 2、获取 node 上所有的 sandboxes sandboxes, err := cgc.manager.getKubeletSandboxes(true) if err != nil { return err } // 3、收所有 container 的 PodSandboxId sandboxIDs := sets.NewString() for _, container...阅读全文

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

协议介绍之深入了解 gRPC

选择。 如果大家对解析 HTTP/1.x 很感兴趣,可以研究下 http-parser,一个非常高效小巧的 C library,见过不少框架都是成了这个库来处理 HTTP/1.x 的。 Request/Response HTTP/1.x 另一个问题就在于它的交互模式,一个连接每次只能一问一答,也就是client 发送了 request 之后,必须等到 response,才能继续发送下一次请求。 这套机制是非常简单,但会造成网络连接利用率不高。如果需要同时进行大量的交互,client 需要跟 server 建立多条连接,但连接的建立也是有开销的,所以为了性能,通常这些连接都是长连接一直保活的,虽然对于 server 来说同时处理百万连接也没啥太大的挑战,但终归效率不高。 Push 用...阅读全文

博文 2017-06-22 11:08:48 debian.cn

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

]); } } } return dp[m][n]; } public static void main(String[] args) { String str1 = "BDCABA"; String str2 = "ABCBDAB"; int array = MaxTwoArraySameOrderMethod(str1,str2); System.out.println(array); } } 6、背包问题 在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数),求背包能够容纳的最大价值。 像这种固定数值的组问题,比如这个问题的W总容量,跟下个实例零钱问题的总钱数,都是适用动态规划来解决的问题,对于这样的问题,动态规划的解法就...阅读全文

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

Docker 核心原理

映射了 docker 容器的文件层级结构和 OverlayFS 的对应关系。 OverlayFS 是一种堆叠文件系统,它依赖并建立在其它的文件系统之上,不直接参与磁盘空间结构的划分,仅将原来文件系统中不同目录和文件进行 merge。用户看到就是这个 merged 目录。这些被处理的每个目录都被称为层,视图统一的过程则称为联挂载。多个目录进行层叠,肯定具有上下层关系,OverlayFS 将下层的目录称为lowerdir,上层的目录称为upperdir,被暴露的统一视图目录称为 merged。 容器文件系统层级示例 1 2 3 4 5 6 7 8 9 10 11 12 root@lxkaka-server:~# docker inspect a2b1e73dda7f...阅读全文

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