热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux确实越来越慢了

linux确实越来越慢了--Linux通用技术-Linux技术与应用信息,下面是详情阅读。
  记得在哪里看到有人说过一句话,linux正在慢慢变成另外一个windows。

  现在觉得还真有点那么回事。首先linux的内核代码随着市集模式开发,变得越来越复杂庞大。慢慢的已经很少能有人全盘掌握了。其次,linux大量特性的引入,系统的执行效能越来越跟不上代码规模的发展。这点,在我这个向来使用淘汰机器运行linxu系统的人来说,还真的体会到了。

  2003年那会儿,我用一台赛扬500,内存96M的机器跑linux,从redhat到magiclinux,然后到Debian woody,感觉机器还挺快。速度稍微比win98,win2k慢那么一点点。

  2008年初,我用一台图拉丁赛扬1.1G,内存384M的机器跑Debian etch,还是一样的最简安装。然后apt加装gonme,kde,toolchain。机器性能应该说提升了不少,传说中的神器图拉丁性能也是大家公认的可以超越同频率的P4.结果呢,Debian已经慢的让人无法忍受了。开一个窗口要等2,3秒。所有的程序都有这样的延迟。竟然比2003年的破机器还差。速度仍然是比不上winxp。

  以前的就配置是 2.4 内核,现在是 2.6 内核。运行中查看CPU load,cpu 负载的抖动非常剧烈,在70% 与 5%之间大幅度跳动。查看内存消耗,1G交换分区完全空闲,物理内存剩余20M。典型的调度不当。系统出现明显的CPU不太忙,内存不吃紧,但就是跑不快。

  现在的内核看起来过分强调磁盘内存缓冲对性能的提高。系统尽多可能的吸收一切空闲内存充当磁盘缓冲,却把大把的交换分区闲置。在做纯文件服务器,网关等应用大规模读写时,长时间(相对于用户大约10S~30S的短时间操作频率)统计意义上确实会带来吞吐量的提升。然而,对于桌面应用来说,更多的其实是需要快速的加载程序,减少内存缺页。这种一开始就吸收完大部分系统可用内存做磁盘缓冲的方式,对于桌面应用这种频繁加载,关闭程序的应用来说,是不是会造成反复的内存调度?

  这里面也许也有X这种图形工作方式的因素。但这个可以用相同机器上安装的FreeBSD,NetBSD来反证。同一台机器,跑BSD,速度明显快过Debian。都是标准的默认安装。X系统版本一样。也都装一样版本的KDE。BSD打开程序没有明显的停顿和延迟,速度基本接近winxp。并且开少数窗口程序和开大量窗口程序感觉不到明显差异。

  而看看系统内存的消耗,BSD似乎明显的要主动使用一些交换分区。

  不过,unix/linux 下似乎还没有一个合适的工具来统计内存缺页的频率,进程IO的计数等等类似信息的工具。没法得到一个详尽的分析结果。不知道具体造成这种高分低能的原因。因为用 top ,free这些命令来看,cpu 有大量空闲,内存也并未用尽(交换分区还根本没有使用),但是系统延迟却非常明显。响应能力非常低下。

  (注:最近已经有一个用来调试linux系统延迟的补丁进入2.6内核。配合工具可以看到每个进程的延迟到底是如何消耗掉的。期待Debian升级,到时候可以具体看看到底cpu都被谁浪费掉。)

  大致的分析,估计是这种非常不恰当的内存使用方式。还有任务调度算法 ,以及2.6内核为了提高响应速度而采用提高系统时钟中断频率的鸡肋做法。无知者无畏,linux内存的调度,还没有去看过它的代码,姑且大胆猜猜。无责任言论哈哈!

  于是,按照这样的思路重新编译内核。内存的调度方式,是没办法改了。但是任务调度算法可以选择与2.4内核一样的deadline这种简单有效的方法,不采用2.6内核作为特色引入的两种算法。同时系统时钟频率从默认的 250hz降为标准的100hz。不知道有没有谁采用1000hz?估计只会越来越糟糕,并不会如内核配置说明中那种一厢情愿的认为会显著减少延迟。稍稍有点操作系统概念的人都会知道,提高时钟频率会显著提高任务调度开销,结果就是CPU大量被系统消耗,真正用来做有用计算,留给用户程序的大幅度减少。另外,默认内核是对686做优化,改成PIII优化。其他仍然采用Debian默认内核配置。编译了一下,用掉2小时(似乎2003年时候编一次内核顶多也就1小时左右吧)。

  最后,启用重新编译的新内核,系统明显的响应变好。延迟减少到1秒内。程序界面会提前很多显示出内容。感觉好多了。用top查看cpu负载,稳定在30%左右。偶尔上升到40%。再没有那种反复颠簸的情况出现。

  然后,今天下午做了最后项优化,到nvidia下载驱动,又把nvide的驱动编译进内核。这次,图形显示质量也有提高。同时没有降低性能。感觉终于回到2000年的性能了。

  还是如同windows一样,尽管硬件能力飞升,但系统升级带来的结果就是系统处理能力似乎还是原地踏步。停留在10年前的水平。以前大致能够做多少任务,现在还是只能做那么多,没有质变。linux这点上现在真的是越来越象windows了。大幅度得到提升的是越来越华丽的显示效果。

  还是非常怀念当年win95,32M内存就已经很快的运行。win98 ,64M内存。完成一样的磁盘任务,一样的office处理 ,一样跑3D程序。而当时的linux,就更加节约,号称 4M 内存就可以完美运行。现在呢?嵌入式设备上的linux要想做一些实际有效的事情,也往往有32M的内存,各种不低于300Mhz的处理器了。

  仍然不变,保持处理能力最大限度留给用户的,看来看去就只有BSD了。希望BSD走好。从2000年到现在,BSD从来没有让人失望过。
推荐阅读
  • 主流操作系统简介
    主流操作系统简介子墨居士操作系统理论定义为管理计算机硬件资源,控制其他程序运行并为用户提供交互操作界面的系统软件的集合。操作系统是计算机系统的关键组成部分࿰ ... [详细]
  • 如何查看电脑系统版本_腾讯云服务器系统版本怎么看?Windows和Centos版本怎么选?...
    腾讯云服务器系统版本怎么看?想要知道自己的腾讯云服务器系统版本是哪个,可以登录云服务器后台管理系统查看,或者使用命令行查询,如果不会操作& ... [详细]
  • 新新于2005-09-1415:02:23发表:利用chbg程序动态制作屏保XScreenSaver是一个开放的框架,就像一个服务器,任何一个可以在根窗 ... [详细]
  • Ubuntu简介Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在” ... [详细]
  • 一、安装软件包dig和nslookup需要安装相关软件包。Centos:yuminstallbind-utilsDebian:apt-getupdate ... [详细]
  • 1998元龙芯学生笔记本将投产(组图)
    图1:图示龙芯笔记本机型外观靓丽,对边角做了圆滑处理以防止划伤磕碰,定位小学生。(国芯科技图片)图2:图示龙芯笔记本机型外观稳重,更适合中学生使用。(国芯科技图 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 阿里云服务器iis设置方法与上千种Linux桌面版本相比,Linux服务器只有可怜的十几种。但想要选对适合你的企业需要的仍然不是件容易的事情,选Linux服务器首先要 ... [详细]
  • 如何监控 Linux 服务器状态?,分享
    Linux服务器我们天天打交道,特别是Linux工程师更是如此。为了保证服务器的安全与性能,我们经常需要监控服务器的一些状态,以保证工作能顺利开展。本文介绍的几个命令,不仅仅适用于 ... [详细]
  • 下载地址http:www.kbengine.org这货不错安装在Linux上安装(CentosDebianUbuntuetc.)服务端,请在终端输入:pythonkbenginek ... [详细]
  • i3 处理器_旧机型安装 Linux_64位操作系统
    1.确认CPU是否支持64位首先确认CPU为64位cpu,intelcpu应支持EM64T指令集,amdcpu应支持x86-64指令集; ... [详细]
author-avatar
川妹-闲人_453
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有