Oracle 团队提交的一个补丁将有望使 Linux 内核的引导时间大大缩减,最高可以提速 49%。

Oracle 提交补丁,可使 Linux 内核引导提速 6%-49%

Oracle 开发者在邮件列表中指出,该补丁扩展了 padata,使其可以处理多线程作业。padata 原本只是可以用于处理多个并行单线程作业的框架,补丁添加了 padata 在 CPU 内核之间平均分配工作来处理多线程作业的能力,它会将最小工作量分配给适合处理的协作线程,并且在这些协作线程之间进行负载均衡。

该补丁会推迟 Linux 引导中的 struct page init,这是内核引导过程中的一大性能瓶颈,它并不需要并发限制、资源控制或优先级调整。在各种 x86 系统上进行测试,开发者发现该补丁将延迟的初始化速度提高 63% 至 91%,而这可以将内核引导速度提高 6% 至 49%。尤其是在具有大量 RAM 的多节点环境中,性能改进更为明显。

此补丁的改进同时也使启动虚拟机的时间缩减,这对于云计算环境来说非常重要,因为需要应对不断变化的容量/需求伸缩变化的情况。

Linux 通过 traceroute 我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。 traceroute 通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备 traceroute 要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。

在大多数情况下,我们会在linux主机系统下,直接执行命令行:

traceroute hostname

一、命令格式

traceroute [参数] [主机]

二、 命令功能

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>…][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

三、 命令参数

-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

例子:

[root@myvps ~]# traceroute 67.229.29.200
traceroute to 67.229.29.200 (67.229.29.200), 30 hops max, 60 byte packets
 1  172.22.62.200 (172.22.62.200)  14.671 ms  14.597 ms  14.567 ms
 2  172.22.61.48 (172.22.61.48)  12.515 ms  12.500 ms  12.473 ms
 3  lax-dc6-1-1.it7.net (66.165.226.121)  13.803 ms  13.803 ms  13.782 ms
 4  10.253.1.1 (10.253.1.1)  0.241 ms  0.239 ms  0.213 ms
 5  10.254.0.101 (10.254.0.101)  0.319 ms  0.449 ms  0.546 ms
 6  vpls.as35908.any2ix.coresite.com (206.72.210.19)  0.300 ms  0.362 ms  0.234 ms
 7  vlan54.br08.lax10.vpls.net (184.164.193.61)  0.867 ms  0.851 ms vlan11.br7.lax10.vpls.net (184.164.193.237)  0.998 ms
 8  vlan4.hr9.lax10.vpls.net (184.164.197.141)  2.336 ms  2.351 ms  8.832 ms
 9  67.229.29.200 (67.229.29.200)  0.879 ms  0.933 ms  0.893 ms

Best Trace 是 IPIP 推出的一款路由追踪器,目前有 windows,linux,mac,android,ios 共五个版本,其中 Linux 版本最为简洁,既没有网络表格化更没有地图连线,只有简单的排版打印。 此次介绍的 Best Trace 是在 linux 命令行界面下使用的工具。

在这里介绍 BestTrace 的 Linux 版本使用方式

1、下载并解压

wget https://down.24kplus.com/linux/besttrace4linux.zip
unzip besttrace4linux.zip -d besttrace4
cd besttrace4

因为官网 CDN 经常抽风,所以改为从我个人服务器下载,如果担心不安全,可以从官网下载: https://cdn.ipip.net/17mon/besttrace4linux.zip

如果出现 -bash: unzip: command not found 错误,执行:

#CentOS
yum install unzip zip -y
#Ubuntu
apt-get install unzip zip -y

更多 CentOS 错误解决方法:点击查看

2、赋予执行权

chmod +x besttrace

3、进行路由追踪

./besttrace -q1 -g cn IP

例如:

$ ./besttrace -q1 -g cn 183.56.167.125
traceroute to 183.56.167.125 (183.56.167.125), 30 hops max, 60 byte packets
  1  103.102.5.1  0.40 ms  AS131477  美国 加利福尼亚州 洛杉矶 rixcloud.com
  2  *
  3  59.43.182.78  155.69 ms  AS4809  中国 广东 广州 电信
  4  59.43.187.141  186.04 ms  AS4809  中国 广东 广州 电信
  5  59.43.130.113  191.66 ms  AS4809  中国 广东 广州 电信
  6  202.97.70.14  186.64 ms  *  中国 广东 广州 电信
  7  *
  8  121.14.112.234  159.83 ms  AS4816  中国 广东 深圳 电信
  9  183.60.20.134  191.64 ms  AS4816  中国 广东 深圳 电信
 10  183.56.167.125  160.32 ms  AS4816  中国 广东 深圳 电信

电信:其中 AS4809 就是电信CN2网络,CN2一般59开头IP段,而 AS4134 则是我们说的163网络(也有小营运商称为CN1),全程没有 AS4134 节点称为CN2 GIA,如果中间经过 AS4134 则为CN2 GT。

联通:联通出口网络一般为 AS4837,好于电信的AS4134,比 AS4809 要差一些,高峰期存在丢包现象,联通的出口带宽并不是完全没有亮点,不管是香港还是美国,联通 AS4837 几乎都能直连,很少绕路。也有部分商家为了优化联通的进出口网络,增强用户体验,在国内中转CN2网络后再出口连接到其他国家,这种也可以貌美电信CN2 GIA。

参数说明

-6, - ipv6
使用ipv6。
-J, - json
使用JSON格式打印traceroute结果。
-g, - lang string
语言现在仅支持cn和en。
-m, - maxhop int
指定traceroute将探测的最大跳数(最大生存时间值)。默认值为30.(默认为30)
-a, - noas
显示时,请勿尝试将IP地址映射到AS。
-n, - nodomain
显示时,请勿尝试将IP地址映射到主机名。
-l, - location
显示时,请勿尝试将IP地址映射到位置。
-q, - query int
设置每跳的探测包数。默认值为3.(默认值为3)
-z, - sendtime int
探针之间的最小时间间隔(默认为0)。
如果该值大于10,则它指定一个以毫秒为单位的数字,否则它是一个秒数(也允许浮点值)。
当某些路由器对ICMP消息使用速率限制时很有用。
-f, - stopop int
指定要启动的TTL。默认为1.(默认值为1)
- 同步
通过同步发送icmp包。
-T, - tcp
使用TCP SYN进行探测。
-V, - 版本
打印版本并退出。
-w, - waittime int
设置等待探测响应的时间(以秒为单位)。 (默认3)

其他平台

支持 windows,linux,mac,android,ios 共5个平台。

官方下载: https://www.ipip.net/product/client.html

linux 系统没有自带 wget 工具。当用到 wget 如果没有安装就会出现 --bash: wget: command not found,需要我们自己安装。

CentOS 安装

yum install wget -y

Ubuntu 安装

apt install wget -y

CentOS / Ubuntu 安装 pip。 解决 -bash: pip: command not found 错误

执行:

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python get-pip.py

Successfully installed pip-19.3.1 setuptools-41.4.0 wheel-0.33.6

linux 系统没有自带 zip 的压缩解压工具。当用到 zip 或者 unzip 如果没有安装就会出现 -bash: unzip: Command Not Found-bash: zip: Command Not Found,需要我们自己安装。

CentOS 安装

yum install -y unzip zip

Ubuntu 安装

sudo apt-get install zip