Ubuntu 20.04 启用休眠(Hibernate)配置过程

Ubuntu 20.04 启用休眠(Hibernate)配置过程

最近经常带笔记本回家工作,每次都需要先关闭打开的虚拟机、资料文档和开发环境,回家之后再打开,特别繁琐,所以研究了下Ubuntu 20.04(20.10)如何配置休眠模式。

基础

广义来讲,在Linux中支持三种睡眠模式,分别是:

  • Suspend to RAM,即狭义的挂起(Suspend),本文后面提到挂起都是指这种模式。

  • Suspend to Disk,即我们常说的休眠(Hibernate)。

  • Suspend to Both,也被称作Hybrid Suspend,是上面两种模式的混合,兼具两种模式的优点(和缺点)。

Ubuntu桌面版默认只有挂起(Suspend)模式,没有启用休眠(Hibernate)模式。

挂起和休眠的目标都是保存冻结系统当前状态,后续需要时“快速”唤醒恢复,但是两者的实现方式是不同的。

阅读更多
Linux OOM Killer

Linux OOM Killer

今天介绍一个跟公众号名字很相关的Linux内存管理机制。

概念

在软件故障中,Out-Of-Memory(OOM,系统可用内存不足)是最古老的故障之一,并且一直延续至今。

在早期的计算机系统中,内存小到以kb为单位,那时的程序员要精细的计算每一条指令的内存使用量,犹如在钢丝绳上表演杂技,稍有不慎就会出现内存不足导致软件或操作系统崩溃,但是即使限制那么苛刻,依然产生了许多伟大的软件,这也是这个公众号的名字由来。

即使今天的家用计算机内存已经至少8G起步,操作系统上运行的软件也会遇见OOM错误,Linux为了避免系统内存不足导致整个系统不可用,建立了一套OOM管理机制。

Linux的OOM管理机制会检测可用内存,在内存不足故障发生时选择性的杀死一个或者几个进程以释放内存,而执行这一任务的进程就被称作Linux Out-Of-Memory(OOM) Killer。

阅读更多
Open Source Load Testing Tool Review 2020

Open Source Load Testing Tool Review 2020

Ragnar Lönn, 04 MARCH 2020

原文地址:https://k6.io/blog/comparing-best-open-source-load-testing-tools

摘要

今年想在DevOps平台上集成一些性能测试的工具,方便开发团队自助进行性能测试,调研了一些工具,分享其中一篇文章。

这篇文章的作者分别在17年和20年对市面上的性能测试工具进行了详细的比较和评测,内容非常翔实,他自己也是其中k6工具的作者。

文中参与评测的12款工具的清单如下:

1
2
3
4
5
6
7
8
9
10
11
12
Apachebench 2.3
Artillery 1.6.0
Drill 0.5.0 (new)
Gatling 3.3.1
Hey 0.1.2
Jmeter 5.2.1
k6 0.26.0
Locust 0.13.5
Siege 4.0.4
Tsung 1.7.0
Vegeta 12.7.0
Wrk 4.1.0

文章主要关注众多测试工具的两方面内容:一是性能表现如何,二是易用性如何。

阅读更多
Guide to UUID in Java

Guide to UUID in Java

by baeldung

原文地址:https://www.baeldung.com/java-uuid

最近没怎么写代码,简单复习一下Java的UUID知识点吧,原文来自于baeldung,这个网站有很多Java语言的技巧,经过我长期观察,内容相对各种中文博客是严谨靠谱很多的,可以日常看看,巩固知识。

1.概览

Java中的UUID是一个128bit的值,通常用十六进制数字加”-“字符表示为长度36位的字符串,例如123e4567-e89b-12d3-a456-556642440000,因为128bit是16字节,而一个字节可以表示为2个十六进制字符,”-“符号纯粹是为了可读性添加的,不实际存储于数据中。

UUID广泛用于表示全局唯一值的场景,但是并不是完全不会重复,只是重复的概率较小,在数据量较大和多服务器环境中要注意UUID可能出现重复。

阅读更多
Maximizing Developer Effectiveness Review

Maximizing Developer Effectiveness Review

Tim Cochran, 06 January 2021

原文地址:https://martinfowler.com/articles/developer-effectiveness.html

背景

这篇文章是一系列文章的开篇,作者观察到许多企业在引入新技术后,开发者的效能不增反降,作者认为这是由于新技术的复杂性和认知负担导致的。

通过研究,作者识别了开发者的关键反馈回路(key developer feedback loops),包括开发者每天重复200次的微反馈回路(micro-feedback loops),本系列文章试图引入一个最大化开发者效能的框架,通过优化这些回路提高开发者效能。

阅读更多
OutOfMemory的Kafka学习笔记(1)

OutOfMemory的Kafka学习笔记(1)

背景

Kafka是Apache的顶级消息中间件项目,因为强大的处理能力,被广泛应用于大数据处理和日志采集等领域,发展的前景非常好。

我希望通过对Kafka的学习,深入了解流式数据处理的基本原理,为深入大数据领域的工作奠定基础。

同时也希望能够在金融业务处理中借鉴或引入相关思想和技术。

目标

  • 理解Kafka的原理、架构和关键处理机制
  • 掌握构建、部署和管理Kafka集群的技术
  • 掌握Kafka的参数配置和应用编程
  • 熟悉Kafka关键处理模块的源码
  • 为Kafka开源项目贡献力量
阅读更多