zoukankan      html  css  js  c++  java
  • 【华为云技术分享】Linux内核的分布式编译(2)

    上一期中我们介绍了用源码包安装distcc的方法,这一期我们尝试用distcc对Linux 4.19.90内核进行分布式编译。

    一、Linux内核的分布式编译

    我们尝试用同一个子网中的三台服务器对Linux 4.19.90版内核做分布式编译。首先确定这三台服务器的内网ip分别为172.16.0.16、172.16.0.9和172.16.0.13,对应的hostname分别为VM-0-16-ubuntu、VM-0-9-ubuntu和VM-0-13-ubuntu。其中VM-0-16-ubuntu和VM-0-9-ubuntu有一个CPU核,而VM-0-13-ubuntu带有两个CPU核。

    我们在三台服务器上都使用上一期中提到的脚本安装distcc,并将VM-0-16-ubuntu和VM-0-9-ubuntu作为server,而VM-0-13-ubuntu作为client 。将待编译的Linux 4.19.90内核源码放置在VM-0-13-ubuntu上,并按“Linux内核编程环境”小节中介绍的方法配置好编译环境。安装完的distcc文件夹如下图所示:

    在两个server上我们运行distccd命令启动distcc进程:

     其中172.16.0.0/20为子网的CIDR[1]。数字20为可变长子网掩码,该数字表示如果一个内网ip地址的前20bit与某个CIDR地址块相同,那么该内网ip地址属于该CIDR地址块。

    在client上面我们配置好用于编译的服务器ip地址:

    其中localhost代表可以直接编译,而不是通过本机上的一个daemon进行编译。须知我们在服务器上都使用了daemon模式。

    配置完后在client上查看服务器列表:

    然后就可以编译了:

    distcc是调用机器上安装的gcc进行编译的。其中使用的线程数建议是总的CPU数目的两倍。我们有4个CPU,因此使用了8个线程。在服务器CPU数目较多的时候,可以使用pump模式。pump模式的设置方法可以在源码包中的INSTALL文件中看到,或者使用man distccd命令。

    希望了解更多的信息可以运行man distcc和man distccd命令。

    二、结语

    到这一期为止,Linux和openEuler内核简介一章就已经告一段落了。在下一章中,我们将探讨openEuler中与硬件相关的知识。


    参考文献

    [1]https://baike.baidu.com/item/无类别域间路由/15758573?fromtitle=CIDR&fromid=3695195&fr=aladdin

  • 相关阅读:
    10条建议帮助你创建更好的jQuery插件
    jQuery的end()方法使用详解
    jquery合并表格中相同文本的相邻单元格
    jQuery动态星级评分效果实现方法
    jQuery过滤HTML标签并高亮显示关键字的方法
    jQuery实现高亮显示网页关键词的方法
    深入.net调用webservice的总结分析
    C#中遍历各类数据集合的方法总结
    asp.net后台cs中的JSON格式变量在前台Js中调用方法(前后台示例代码)
    使用交叉验证对鸢尾花分类模型进行调参(超参数)
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13164881.html
Copyright © 2011-2022 走看看