Linux Performance and Tuning Guidelines的中文翻译

首先,这本书的大多数翻译不是我翻译的(虽然还没翻译全),其次,最初的想法将别人的网页上的翻译转换成markdown格式,最后,在尝试一下gitbook这个DRM-free的电子书生成工具。以下是一些介绍:

备注: 以下均在Linux环境中操作。

gitbook简介

gitbook是一个基于node的,用于构建图书使用的命令行工具。具体的怎么装node,推荐使用NVM

以下是简要的安装命令如下:

  1. wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash
  2. # 或
  3. curl https://raw.githubusercontent.com/creationix/nvm/v0.24.0/install.sh | bash
  4. nvm install 0.10
  5. nvm use 0.10

gitbook的安装和使用,可以参考 http://gitbook-zh.wanqingwong.com/

使用的前置条件:

  • 一些Markdown语法,两个基本Markdown文件(README.md 和 SUMMARY.md)
  • 常用的gitbook命令行: gitbook [serve|build|pdf|ebook|init]

实际操作

创建了一个SUMMARY.md,内容如下:

  1. * [前言](preface.md)
  2. * [第一章 了解Linux操作系统](chap1/README.md)
  3. - [1.1 Linux进程管理](chap1/Linux进程管理.md)
  4. - [1.2 Linux内存结构](chap1/Linux内存结构.md)
  5. - [1.3 Linux文件系统](chap1/Linux文件系统.md)
  6. - [1.4 硬盘I/O子系统](chap1/io子系统.md)
  7. - [1.5 网络子系统](chap1/network.md)
  8. - [1.6 了解Linux性能指标](chap1/indice.md)
  9. * [第二章 监控和测量工具](chap2/README.md)
  10. - [2.1 介绍](chap2/intro.md)
  11. - [2.2 工具功能简介](chap2/工具功能简介.md)
  12. - [2.3 监控工具](chap2/mtool/README.md)
  13. - [2.3.1 top](chap2/mtool/top.md)
  14. - [2.3.2 vmstat](chap2/mtool/vmstat.md)
  15. - [2.3.3 uptime](chap2/mtool/uptime.md)
  16. - [2.3.4 pspstree](chap2/mtool/ps.md)
  17. - [2.3.5 free](chap2/mtool/free.md)
  18. - [2.3.6 iostat](chap2/mtool/iostat.md)
  19. - [2.3.7 sar](chap2/mtool/sar.md)
  20. - [2.3.8 mpstat](chap2/mtool/mpstat.md)
  21. - [2.3.9 numaster](chap2/mtool/numaster.md)
  22. - [2.3.10 pmap](chap2/mtool/pmap.md)
  23. - [2.3.11 netstat](chap2/mtool/netstat.md)
  24. - [2.3.12 iptraf](chap2/mtool/iptraf.md)
  25. - [2.3.13 tcpdump/ethereal](chap2/mtool/tcpdump.md)
  26. - [2.3.14 nmon](chap2/mtool/nmon.md)
  27. - [2.3.15 strace](chap2/mtool/strace.md)
  28. - [2.3.16 Proc文件系统](chap2/mtool/Proc文件系统.md)
  29. - [2.3.17 KDE System Guard](chap2/mtool/KDE System Guard.md)
  30. - [2.3.18 Gonme System Monitor](chap2/mtool/Gonme System Monitor.md)
  31. - [2.3.19 Capacity Manager](chap2/mtool/Capacity Manager.md)
  32. - [2.4 基准工具](chap2/btool/README.md)
  33. - [2.4.1 LMbench](chap2/btool/lmbench.md)
  34. - [2.4.2 IOzone](chap2/btool/iozone.md)
  35. - [2.4.3 netperf](chap2/btool/netperf.md)
  36. - [2.4.4 其它有用工具](chap2/btool/other.md)
  37. * [第三章 分析性能瓶颈](chap3/README.md)
  38. - [3.1 确认瓶颈](chap3/确认瓶颈.md)
  39. - [3.2 CPU瓶颈](chap3/CPU瓶颈.md)
  40. - [3.3 内存瓶颈](chap3/内存瓶颈.md)
  41. - [3.4 硬盘瓶颈](chap3/硬盘瓶颈.md)
  42. - [3.5 网络瓶颈](chap3/网络瓶颈.md)
  43. * [第四章 操作系统调优](chap4/README.md)
  44. - [4.1 调优原则](chap4/调优原则.md)
  45. - [4.2 安装注意事项](chap4/安装注意事项.md)
  46. - [4.3 更改内核参数](chap4/更改内核参数.md)
  47. - [4.4 处理器子系统调优](chap4/处理器子系统调优.md)
  48. - [4.5 虚拟内存子系统调优](chap4/虚拟内存子系统调优.md)
  49. - [4.6 硬盘子系统调优](chap4/硬盘子系统调优.md)
  50. - [4.7 网络子系统调优](chap4/网络子系统调优.md)

然后,运行gitbook init,创建如下的目录结构:

  1. chap1/
  2. indice.md
  3. io子系统.md
  4. Linux内存结构.md
  5. Linux文件系统.md
  6. Linux进程管理.md
  7. network.md
  8. README.md
  9. chap2/
  10. btool/
  11. README.md
  12. mtool/
  13. README.md
  14. intro.md
  15. README.md
  16. 工具功能简介.md
  17. chap3/
  18. CPU瓶颈.md
  19. README.md
  20. 内存瓶颈.md
  21. 硬盘瓶颈.md
  22. 确认瓶颈.md
  23. 网络瓶颈.md
  24. chap4/
  25. README.md
  26. 处理器子系统调优.md
  27. 安装注意事项.md
  28. 更改内核参数.md
  29. 硬盘子系统调优.md
  30. 网络子系统调优.md
  31. 虚拟内存子系统调优.md
  32. 调优原则.md
  33. preface.md

从生成的目录结构可以猜出,gitbook大概不支持自动的三级目录的生成。

生成静态页面

gitbook自带的工具可以生成静态页面,运行命令为gitbook serve .(这里是在书籍的当前目录运行的),输出如下:

  1. Press CTRL+C to quit ...
  2. Live reload server started on port: 35729
  3. Starting build ...
  4. Successfully built!
  5. Starting server ...
  6. Serving book on http://localhost:4000

生成电子书

gitbook生成电子书,需要Calibre的支持,Calibre安装命令如下:

  1. sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()"

注: 这里是个人环境为 64位ubuntu Linux,已安装了python。

生成pdf,还需要安装gitbook-pdf,命令如下:

  1. npm install gitbook-pdf -g

生成epub,还需要安装ebook-convert,命令如下:

  1. npm install ebook-convert -g

至此,使用命令gitbook [pdf|epub] . 就能生成相应的电子书了。这样,个人自制电子书的工具也准备好了,这意味着,可以自制些电子书去忽悠别人了。