经常看到的 Ubuntu 16.04 或者 18.04 都是 Ubuntu 长期支持版本
A Long Term Support release or LTS release, means that Ubuntu will support the version for five years.
如果要从 16.04 升级到 18.04 包括两个部分,一是将当前安装的程序及 lib 升级到 18.04 兼容的版本,另外一个就是将系统升级到 18.04.
sudo apt update && sudo apt upgrade
s
Read more ...
前两天重启服务器之后发现 fail2ban 启动失败,出现如下错误:
/etc/init.d/fail2ban restart
[....] Restarting fail2ban (via systemctl): fail2ban.service
Job for fail2ban.service failed because the control process exited with error code. See "systemctl status fail2ban.service" and "journalctl -xe" for detai
Read more ...
Python 中的 with 语法经常被用来在管理资源的访问和清理中,常见的场景有文件的使用和关闭,锁的获取和释放等等。
with open("file.txt") as file:
data = file.read()
with 语法特别容易联想起 Java 中的 try-with-resources AutoCloseable,同样实现资源的自动释放。
基本格式
从基本使用开始了解 with,with 的结构如下:
with context_expression [as target(s)]:
content
With 工作原
Read more ...
最近在整理以前的草稿箱,翻到了这篇建于 2019 年的关于“唯一 ID 生成器”的笔记。当时似乎正在为一个分布式系统设计主键生成策略。既然翻出来了,就趁着这个机会,结合这几年在分布式领域的经验,把这个话题完善一下。
在单体架构中,我们习惯使用数据库的自增 ID(Auto Increment)作为主键,简单且性能不错。但在分布式系统或微服务架构下,分库分表之后,自增 ID 就捉襟见肘了。我们需要一个能够在分布式环境下生成全局唯一、趋势有序、且高性能的 ID 生成方案。
常见方案对比
在确定最终方案之前,通常会考察以下几种常见的替代方案:
1. UU
Read more ...
CPU 调频模块主要分为三块:
CPUFreq 核心模块,核心模块主要是公共的 API 和逻辑
CPUFreq 驱动,处理和平台相关的逻辑,设置 CPU 频率和电压
CPUFreq governor,频率控制器,CPU 调频的策略,CPU 在什么负载,什么场景下使用多少频率
最后第三部分 governor 也是本文重点。传统的 CPU governor 选择,以 Performance 和 Powersave 举例,就是一个让 CPU 跑在最高频率,一个让 CPU 跑在最低频率,所有动作都在初始化时设置。
调频器策略
OnDeman
Read more ...