热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Linux技术评估测试Linux的可靠性

文章标题:Linux技术评估测试Linux的可靠性。Linux是中国IT实验室的一个技术频道。包含桌面应用,Linux系统管理,内核研究,嵌入式系统和开源等一些基本分类

  本文记录了 Linux 内核和其他核心 OS 组件的测试结果与分析,从库和设备驱动程序到文件系统和网络,测试范围无所不含,所有的测试都是在相当不利的条件下进行,并且经历了很长的时间。IBM Linux Technology Center 刚刚结束了这次长达三个多月的全面测试,并将他们的 LTP (Linux Test Project) 测试结果与 developerWorks 的读者共享。
  
  IBM Linux Technology Center (LTC) 成立于 1999 年 8 月,想让 Linux 成功的共同梦想使其与 Linux 开发团体直接合作。它的 200 多名员工使之成为开放源代码开发者的较大团队组织之一。他们提供的代码范围包括,从补丁到结构化的内核改变,从文件系统和国际化工作到 GPL'd 驱动程序。他们还致力于追踪 IBM 内部进行的 Linux 相关开发。
  
  LTC 尤其感兴趣的领域是 Linux 可扩展性、适用性、可靠性和系统管理 —— 所有的目的都是为了使 Linux 更适用于企业。他们为 Linux 团体所做出了诸多贡献,包括使 Linux 可以工作于 S/390 主机,将 JFS 日志文件系统移植到 Linux,等等。
  
  LTC 的另一项核心任务是,以测试商业项目的方式在实验室条件下对 Linux 进行专业的测试。LTC 与 SGI、OSDL、Bull 和 Wipro Technologies 一道促成了 LTP Linux 测试项目(LTP)。下面是经过 LTP 套件在 Linux 内核上超长时间全面测试得到的结果。如您所猜,Linux 极好地承受了持续的压力的考验。
  
  测试结果一瞥
  下面的总结基于运行期间的测试和观察结果:
  
  * Linux 内核和其他核心 OS 组件 —— 包括库、设备驱动程序、文件系统、网络、IPC 和内存管理 —— 运转稳定并完成了所有期望的运行期间,没有任何严重的系统故障。
  * 每次运行的成功率都很高(超过 95%),只有极少数的期望中的间歇故障,而这些故障是设计用来使资源过载的测试同时执行的结果。
  * Linux 系统性能在长时间的运行中没有下降。
  * 在 SMP 系统上,Linux 内核正确地扩展以使用硬件资源(CPU、内存、硬盘)。
  * Linux 系统可以很好地承受 CPU 持续满负荷运转(超过 99%)和极重内存压力。
  * Linux 系统正确地处理了过载的情况。
  
  测试证明了 Linux 内核和其他核心组件在 30 天、60 天、90 天内是可靠的稳定的,可以为用户提供一个长时间运行的健壮的、企业级的环境。
  
  Linux 可靠性度量
  目标
  对 IBM Linux Technology Center 来说,Linux 可靠性工作的目标是,使用 LTP 测试套件对 Linux 操作系统进行超长时间的测试,重点在于 Linux 用户环境相关的工作负荷(参阅 参考资料 以深入了解 LTP)。而并不是致力于证明缺陷。
  
  测试环境概述
  本文描述的是使用 LTP 测试套件进行的 30 天与 60 天的 Linux 可靠性度量测试的测试结果和分析。测试以 SuSE Linux Enterprise Server v8 (SLES 8) 作为测试内核,以 IBM pSeries 服务器作为测试硬件。使用的是一个特别设计的 LTP 压力测试场景,在使用网络与内存管理的同时并行地运行大范围的内核组件,并在测试系统上生成高工作负荷压力。Linux 内核、TCP、NFS 和 I/O 测试组件以重工作负荷压力为目标。
  
  测试
  
  30 天
  pSeries 30 天 LTP 压力执行结果
  
  * 机器:p650 LPAR
  * CPU:(2) Power4- 1.2 GHz
  * 内核:Linux 2.4.19-ull-ppc64-SMP (SLES 8 SP 1)
  * LTP 版本:20030514
  * 99.00% 平均 CPU 利用率(用户:48.65%,系统:50.35%)
  * 80.09% 平均内存利用率(8GB)
  
  观测结果:
  
  * 在 p650 LPAR 上 SLES 8 PPC64 30 天压力运转成功完成。
  * 测试工具是 LTPstress。测试用例以并行和串行方式执行。
  * 内核、TCP、NFS 和 I/O 测试组件都以重工作负荷压力为目标。
  * 成功率:97.88%。
  * 没有严重的系统故障。
  
 

  60 天
  60 天 LTP 压力执行结果:pSeries
  
  * 机器:B80
  * CPU:(2) Power3- 375 MHz
  * 内核:Linux 2.4.19-ull-ppc64-SMP (SLES 8 SP 1)
  * LTP 版本:20030514
  * 99.96% 平均 CPU 利用率(用户:75.02%,系统:24.94%)
  * 61.69% 平均内存利用率(8GB)
  * 3.86% 平均交换分区利用率(1GB)
  
  观测结果:
  
  * 在 pSeries B80 上 SLES 8 PPC64 60 天压力运转成功完成。
  * 测试工具是 LTPstress。测试用例以并行和串行方式执行。
  * 内核、TCP、NFS 和 I/O 测试组件以重工作负荷压力为目标。
  * 成功率:95.12%。
  * 没有严重的系统故障。
  

  测试基础设施
  
  硬件与软件环境
  系统 处理器 内存 硬盘 交换分区 网络
  pSeries 650 (LPAR) Model 7038-6M2 2 - POWER4+(TM) 1.2GHz 8GB (8196MB) 36GB U320 IBM Ultrastar(有其他硬盘,但没有使用) 1GB 以太网控制器:AMD PCnet32
  pSeries 630 Model 7026-B80 2 - POWER3(TM)+ 375 MHz 8GB (7906MB) 16GB 1GB 以太网控制器:AMD PCnet32
  
  pSeries 630 Model 7026-B80 和 pSeries 650 (LPAR) Model 7038-6M2 上的软件环境是相同的。
  组件 版本
  Linux SuSE SLES 8 with Service Pack 1
  内核 2.4.19-ul1-ppc64-SMP
  LTP 20030514
  
  方法学
  系统的稳定性和可靠性通常以连续运转时间和系统的可靠运行时间来度量。
  
  最初运行的是一组为期 30 天的基线运转,然后增加到 60 天和 90 天的 xSeries 和 pSeries 服务器上的 Linux 测试运转。初始重点在于内核、网络和 I/O 测试。
  
  测试工具
  Linux Test Project(即 LTP;参考资料 中有链接和更多信息)是 SGI、IBM、OSDL、Bull 和 Wipro Technologies 合作的项目,目的是为开放源代码团体提供测试套件,以测试 Linux 的可靠性、健壮性和稳定性。Linux Test Project 是测试 Linux 内核和相关部件的工具的集合。目的是通过使内核测试工作自动化来帮助改进 Linux 内核。
  
  当前,在 LTP 套件中有超过 2000 个测试用例,涵盖了内核的大多数接口,比如系统调用、内存、IPC、I/O、文件系统和网络。测试套件每月都会更新发布,可以运行于多种体系结构上。已知的 LTP 测试套件测试过的体系结构有 11 种,包括 i386、ia64、PowerPC、PowerPC 64、S/390、S/390x (64bit)、MIPS、mipsel、cris、AMD Opteron 和嵌入式体系结构。我们的可靠性测试中使用的 LTP 版本是 20030524,这是当时可以获得的最新版本。
  
  测试策略
  在基线运转中有两个特别的阶段:一个 24 小时的“初始测试”,接下来是压力可靠性运转阶段,或者说是“压力测试”。
  
  通过初始测试是开始测试的必要条件。初始测试包括 LTP 测试套件在硬件和操作系统上 24 小时的成功运转,这些硬件和操作系统将用于可靠性运转。LTP 测试套件包附带的驱动程序脚本 runalltest.sh 用于验证内核。这个脚本串行地运行一组成包的测试,并报告全部结果。也可以选择同时并行地运行几个实例。默认地,这个脚本执行:
  
  * 文件系统压力测试。
  * 硬盘 I/O 测试。
  * 内存管理压力测试。
  * IPC 压力测试。
  * 调试器测试。
  * 命令功能的验证测试。
  * 系统调用功能的验证测试。
  
  压力测试可以验证产品在系统高使用率时的健壮性。作为 runalltest.sh 的补充,特别设计了一个名为 ltpstress.sh 的测试场景,在使用网络与内存管理的同时并行地运行大范围的内核组件,并在测试系统上生成高压力负荷。ltpstress.sh 也是 LTP 测试套件的一部分。这个脚本并行地运行相似的测试用例,串行地运行不同的测试用例,这样做是为了避免由于同时访问同一资源或者互相干扰而引起的间歇性故障。默认地,这个脚本执行:
  
  * NFS 压力测试。
  * 内存管理压力测试。
  * 文件系统压力测试。
  * 数学 (浮点) 测试。
  * 多线程压力测试。
  * 硬盘 I/O 测试。
  * IPC (pipeio, semaphore) 测试。
  * 系统调用功能的验证测试。
  * 网络压力测试。
  
  系统监控
  LTP 测试套件附带的修改过的 top 工具用作系统监控工具。使用 top 可以实时地观察处理器的行为。改进的 top 工具具有附加的功能,可以将 top 结果的快照保存到文件中,并给出结果文件的平均总结,包括 CPU、内存和交换空间利用率等信息。
  
  在我们的测试中,每 10 秒钟截取一次系统利用率(或者 top 输出文件)的快照,并保存到结果文件。另外,每天或每周要处理系统利用率的快照和 LTP 测试输出文件并得到数据分数,以确定系统在长时间运转中性能是否下降。此功能由 cron 作业和脚本控制。
  
  测试之前
  所有选定的测试系统的硬件配置尽可能相同。去掉了额外的硬件以减少潜在的硬件故障。在映像安装过程中选择最低的安全选项。预留至少 2 GB 的硬盘空间以保存 top 数据文件和 LTP 日志文件。
  
  注意,这是一个测试场景;现实生活中,最好建议用户保持安全设置远高于最低设置。
  
  测试期间
  在测试期间系统不要受到干扰。偶尔访问一下系统以确认测试仍在进行是可以接受的。确认的手段包括使用 ps 命令、检查 top 数据和检查 LTP 日志数据。
  
  测试之后
  当测试结束后,系统监控工具 top 立刻停止。所有的 top 数据文件,包括每天或每
推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • 项目需要将音视频文件上传服务器,考虑并发要求高,通过七牛来实现。直接上代码usingQiniu.IO;usingQiniu.IO.Resumable;usingQiniu.RPC; ... [详细]
  • NFS文件共享系统
    1、概述:NFS(NetworkFileSystem)意为网络文件系统,它最大的功能就是可以通过网络,让不同的机器不同的操作系统可以共享 ... [详细]
  • 定义#definePCAP_OPENFLAG_PROMISCUOUS1    定义适配器是否必须进入混杂模式。#definePCAP_OPENFLAG_DATATX_UDP2    ... [详细]
  • 提示信息_局域网内互发提示信息
    本文由编程笔记#小编为大家整理,主要介绍了局域网内互发提示信息相关的知识,希望对你有一定的参考价值。【局域网内互发提示信息】准备工作:1.rege ... [详细]
author-avatar
狡兔死走狗喷Henry
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有