InnoDB Page Structure — High-Altitude View MySQL文档翻译:InnoDB页宏观结构

原文 [MySQL Internals Manual 22.2.1 High-Altitude View] https://dev.mysql.com/doc/internals/en/innodb-page-overview.html

0. 概述

InnoDB的页有7个部分:

[...] 阅读全文

在awk中如何使用或赋值shell的变量

写shell脚本处理文本的时候,经常用到awk来配合shell命令。但是awk的大括号中和shell貌似是两个世界。本文只介绍最容易理解的方法(作者水平有限,复杂的以后可能补充),来实现awk对shell变量的使用和更改。

如果我们将awk看成变成语言中的函数,或者一个封装,那么要使用或者修改外部的变量,其实就是输入参数和输出返回值的问题。对于使用shell变量,其实就是shell变量怎么作为参数传入awk的问题;而对于awk给shell变量赋值,可以看成awk输出返回值的问题。

awk中使用shell变量

awk传入参数的选项是-v [awk_var=$SHELL_VAR],应该加在’ ‘包围的awk主体程序之前。[...] 阅读全文

Optimizing Disk I/O MySQL文档翻译:优化磁盘I/O

原文:8.5.8 Optimizing InnoDB Disk I/O

这页感觉比较重要,翻译一下。。

如果你遵循了数据库设计和SQL操作调优的最佳实践,但是数据库仍然由于磁盘I/O负载过重而运行慢,请考虑这些磁盘I/O优化方法。如果Unix top工具或Windows任务管理器显示你的工作负载的CPU使用率百分比小于70%,那么你的数据库系统瓶颈在于磁盘。[...] 阅读全文

Optimizing InnoDB Disk I/O MySQL文档翻译:优化InnoDB磁盘I/O

原文: MySQL 5.7 Reference Manual — 9.12.2 Optimizing Disk I/O

本节将介绍当你决定更多更快的存储硬件设备投入到数据库服务器时,应该如何配置它们。 软件配置上优化InnoDB以提高I / O性能的信息,请参见第9.5.8节“优化InnoDB磁盘I/O”。

  • 磁盘寻道是一个巨大的性能瓶颈,当数据量剧增到使得缓存命中率减小时,这个问题会更为明显。对于或多或少会进行随机访问的大型的数据库,可以确定对于读至少需要一次磁盘寻道,而对于写需要好几次磁盘寻道。要最小化这个问题,应该用磁盘寻道时间较小的磁盘。[...] 阅读全文

The UAPI header file split 翻译:内核源码中UAPI头文件分割

在LWN.net上的一篇文章,The UAPI header file split(By Michael Kerrisk July 25, 2012)。原文链接:https://lwn.net/Articles/507794/

这个特性已经在3.7版本中被Linus大神接受[详情]。。。Linus大神如是说:

the “uapi” include file cleanups. The idea is that the stuff exported to user space should now be found under include/uapi and arch/$(ARCH)/include/uapi.

Let’s hope it actually works. Because otherwise this was just a
totally pointless pain in the *ss. And regardless, I’m definitely done
with these kinds of “let’s do massive cleanup of the include files”
forever.

下面我逐段意译一下文章。。。[...] 阅读全文

Qemu KVM 虚拟机通过虚拟网桥实现桥接和NAT的实验

系统概况:

  • host 和 guest 都是用的 Ubuntu Server 16.04系统。
  • 我的 host 机上有三块网卡2块有线网卡(接口 enp1s0 和 enp3s0)和1个无线网卡(接口 wls2s0)。
  • 我的 host 机通过无线网卡连在一个路由器上,并因此能够连接到互联网,所在的网段是192.168.3.0\24,ip 固定为192.168.3.5。
  • 其他两块有线网卡没有连接。

实验0:

效果:

guest 与 guest、guest 与 host 之间可以互相 ping 通;guest 不能访问 host 所在路由器网段(192.158.3.0\24)。

方案:

在 host 中搭建了一个虚拟网桥,将 qemu-bridge-helper 工具在启动虚拟机时创建的虚拟网络接口 tap0[1,2…] 与 host 桥接在一起,我手动配置了他们的网段是192.168.4.0\24。

步骤:

1.配置 host 的 /etc/network/interfaces ,在其中加入以下内容,然后通过 /etc/init.d/networking restart 重启服务来创建网桥。[...] 阅读全文

C语言中结构体struct初始化和赋值的几种方式

http://stackoverflow.com/questions/330793/how-to-initialize-a-struct-in-accordance-with-c-programming-language-standards

在内核中fs/ext3/indoe.c中,一个struct初始化格式个这样的:

[...] 阅读全文

推荐一些简洁好用的Chrome插件

最近在实验室学习,chrome竟然称为了我使用的主要工具,不论是看博客或是看一些文档、论坛都离不开浏览器。chrome浏览器非常好用,通过登录google账号,可以同步设置、书签甚至插件。这里推荐几个我用的Chrome插件,能提高工作效率,大家根据名字都能搜到。

Octotree

可以在显示github网页左侧显示类似工程目录的侧边栏。

OneTab

可以一键将暂时没看完的标签收集起来,有时间(内存)时可以一键展开重新加载。[...] 阅读全文

In-kernel memory compression 翻译:内核内实现的内存压缩

(发布于 April 3, 2013, 意译于12/9/2016)

  • 原文链接 :https://lwn.net/Articles/545244/
  • 另一个版本的翻译(有些句子没有翻): http://kernel.taobao.org/index.php?title=%E5%86%85%E6%A0%B8%E6%9C%88%E6%8A%A52013-04#In-kernel_memory_compression
  • 吐槽 : 我的天呐!!翻译完我才发现有人翻译过了,早知道我就不自己翻译了,痛苦死我了。。
  • :内容我还没有完全理解,仅供参考,以原文为准。

阿姆达尔定律告诉我们一个计算机系统肯定存在一个瓶颈。历史上,对于很多工作负载这个瓶颈都是cpu,所以人们在不断提升cpu性能。所以现在,渐渐地,ram成为了瓶颈。有时当数据在ram和disk之间来回传递时,cpu就在一边干瞪眼呢。增大ram有时并不是一个好的或者经济的做法,更快的I/O或者ssd可以缓解问题,但是不能消除这个瓶颈。

如果可以增大ram中数据的有效容量,不是很好吗?既然cpu闲置,也许我们可以拿闲置的cpu周期来专注这件事。这就是内核内压缩的目标:用闲置的cpu周期来做ram中的压缩和解压缩。[...] 阅读全文