linux初探

首页

应用服务器

Linux技巧

中文文档

Linux初级

服务器源代码

命令详解

Linux技术应用

Linux安全应用

Linux业界新闻

UniX技术文章

Linux编程与内核

Linux数据库

Linux服务器

Linux安装指导

Linux论坛

首页>>Linux编程与内核>>文章正文

通用的优化Linux的六大妙招

针对系统的优化工作需要根据不同的系统采用不同的办法。本文旨在描述通用的优化 Linux 的一些办法。

  一、编译选项

  当我们采用 -O9 来编译程序时,或许文件字节数是最大的,但是往往其运行速度也是最快的。 根据不同的机器架构,你可以把下面的语句加入 /etc/profile 。

QUOTE:
i686:
  
  export CFLAGS=-O9 -funroll-loops -ffast-math
-malign-double -mcpu=pentiumpro -march=pentiumpro
-fomit-frame-pointer -fno-exceptions
  
  
  i586:
  
  export CFLAGS=-O3 -march=pentium -mcpu=pentium
-ffast-math -funroll-loops -fomit-frame-pointer
-fforce-mem -fforce-addr -malign-double -fno-exceptions
  
  
  i486:
  
  FLAGS=-O3 -funroll-all-loops -malign-double
-mcpu=i486 -march=i486 -fomit-frame-pointer
-fno-exceptions

  另外,安装程序时,使用 tarball 格式总要比 RPM 格式来得好,因为, tarball 需要重新编译,能针对你的机器架构作优化,得到最好的性能。这也是本站下载中心提供的都是 .tar.gz 格式的原因吧!

  二、重新编译内核

  一般的 Linux 发行商发布的 Linux 版本,其内核总是会带有一些对你来说不是很实用的东西,例如对无线火腿(HAM Radio)的支持,对 Token Ring 的支持等。

  如果对自己编译感到怯生生的话,可以查看下面的两个网站的资料:Linux Kernel Howto: www.linuxdoc.org/HOWTO/Kernel-HOWTO.html;Linux Kernel : www.kernel.org。经过三次失败的编译后,你就能成功编译自己需要的内核了。“失败是成功之母”么!

  三、停止不使用的服务

  Sendmail, http, crond, kudzu, mysql, portmap, postgresql, smb, snortd, webmin, inetd (或者 xinetd) 等都是很棒的程序,但是如果你不会使用他们,干吗要让他们占用您宝贵的资源呢?而且,这些程序都会带来安全隐患。一般说来,一套“干净”的 Linux 系统,只需要gpm, network, syslog, ssh 和 xfs。如果临时有需要,就手工启动好了。这些启动脚本一般都在 /etc/rc.d/init.d 目录下。

  检查自己的机器上使用中的服务,可以采用 nmap 工具扫描。
QUOTE:
[xyj@freelamp.com]$ nmap -p1-65535 211.94.129.28
  
  Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
  
  Interesting ports on freelamp.com (211.94.129.28):
  
  (The 65492 ports scanned but not shown below are in state: closed)
  
  ---Edited version of the output due to space considerations--
  
  Port State Service
  
  ...
  
  514/tcp open shell
  
  1025/tcp open listen
  
  1099/tcp open unknown
  
  1214/tcp open unknown
  
  ...

  检查特定端口上正在运行的程序名,可以采用:
QUOTE:
[root@freelamp.com /root]# netstat -anp|more
  
  
  Active Internet connections (servers and established)
  
  Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  
  ....
  
  tcp 0 0 203.199.66.200:8007 203.199.66.197:1060 CLOSE 1005/java
  
  tcp 0 0 203.199.66.200:22 203.199.66.197:3768 ESTABLISHED 1381/sshd
  
  tcp 0 0 203.199.66.200:23 192.168.57.46:1546 ESTABLISHED 1229/in.telnetd: 19
  
  ....

  最后一列显示运行的程序及其 PID。 我们还可以采用 ps 命令检查机器上正在运行的守护程序:
QUOTE:
[root@freelamp.com root]# ps xc -u 0
  
  PID TTY STAT TIME COMMAND
  
  ...
  
  1475 ? S 0:02 sendmail
  
  1498 ? S 0:04 gpm
  
  16539 ? S 0:01 httpd
  
  ...

相关文章

·Linux内核接收以太帧的处理程序
·说说在fedora上使用ctags和cscope看代码
·(IPC)信号量的问题
·Linux下信号与进程控制解析
·Linux内核模块函数调用及命名空间
·编译内核过程中出现的问题
·揭示恶意的Linux内核模块是如何工作
·解读和分析Linux核心源码的两种方法
·Linux中GCC的应用介绍

热门文章

·C++中控制Windows关机的实用
·C++继承性应用实例 日期和时
·C++类型转换时定义非成员函数
·从模板中分离出参数无关的代
·C++中用函数模板实现和优化抽
·用C++ Builder检测Windows的
·用C++ Builder来定制系统菜单
·C++语言代码检查工具PC-Lint
·用C语言实现常见的三种中文内
·用C++ Builder开发多层数据库

Copyright@2005 www.linuxGoo.com All Right Reserved