Ubuntu上使用Netdata设置实时性能监控的详细流程

2019-01-16 21:25:09丽君
内核同页合并(简称KSM)开始。Netdata开发人员估计这会将Netdata的内存使用量降低40-60%。

启用后,KSM守护程序会定期扫描内存,查找可由单个写保护页替换的相同内容的页面。在此上下文中,它允许在系统上运行的不同进程或程序之间共享相同的内存页。这减少了不必要的重复内存内容的创建。

要永久启用Linux系统内核的此方面,请使用文本编辑器打开/etc/rc.local文件。

$ sudo nano /etc/rc.local

在启动所有其他正常Linux系统服务和进程之后,将执行/etc/rc.local文件或运行控制文件。它对于指定自定义服务很有用-或者,在我们的示例中,用于在服务器运行时启用KSM。

将下面显示的两个命令添加到文件末尾,在最后exit 0一行之前,如下所示:

/etc/rc.local

#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. echo 1 > /sys/kernel/mm/ksm/run echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs exit 0

echo 1 > /sys/kernel/mm/ksm/run 第一个命令将1添加到runKSM内核文件中,该文件启用该功能。第二个命令echo 1000 > /sys/kernel/mm/ksm/sleep_millisecs 告诉KSM守护程序每秒运行一次并评估100个页面以进行重复数据删除。

保存并关闭文件后,KSM现在将在下次服务器重新启动时启用,并在将来重新启动时保留。要在此服务器的当前正常运行时间内启用它,您需要在命令行上手动运行您添加到rc.local的两个命令。

首先,通过在sudo中使用-s标志,启动并输入新的shell会话作为服务器的root用户。这是必要的,因为早期的两个命令使用输出重定向(通过>运算符)并且需要由root shell执行才能成功。

$ sudo -s

现在输入之前的两个命令:

echo 1 > /sys/kernel/mm/ksm/runecho 1000 > /sys/kernel/mm/ksm/sleep_millisecs

然后,保留root shell并返回正常的shell会话。

$ exit

最后,要应用我们在此步骤以及此前的步骤中执行的所有更改,我们必须重新启动Netdata。

$ sudo systemctl restart netdata

您可以通过在Netdata仪表板中查找新添加的活动KSM图表来验证KSM现在是否已启用。这可以在右侧菜单树中的Memory > Memory Deduper下找到。

KSM Chart Image