Linux

Linux服务器的那些性能参数指标

一个基于Linux操作系统的服务器运行的同时,也会表征出各种各样参数信息。通常来说运维人员、系统管理员会对这些数据会极为敏感,但是这些参数对于开发者来说也十分重要,尤其当你的程序非正常工作的时候,这些蛛丝马迹往往会帮助快速定位跟踪问题。
这里只是一些简单的工具查看系统的相关参数,当然很多工具也是通过分析加工/proc、/sys下的数据来工作的,而那些更加细致、专业的性能监测和调优,可能还需要更加专业的工具(perf、systemtap等)和技术才能完成哦。毕竟来说,系统性能监控本身就是个大学问。
linux-performance

一、CPU和内存类

1.1 top

➜ ~ top
linux-top
第一行后面的三个值是系统在之前1、5、15的平均负载,也可以看出系统负载是上升、平稳、下降的趋势,当这个值超过CPU可执行单元的数目,则表示CPU的性能已经饱和成为瓶颈了。

第二行统计了系统的任务状态信息。running很自然不必多说,包括正在CPU上运行的和将要被调度运行的;sleeping通常是等待事件(比如IO操作)完成的任务,细分可以包括interruptible和uninterruptible的类型;stopped是一些被暂停的任务,通常发送SIGSTOP或者对一个前台任务操作Ctrl-Z可以将其暂停;zombie僵尸任务,虽然进程终止资源会被自动回收,但是含有退出任务的task descriptor需要父进程访问后才能释放,这种进程显示为defunct状态,无论是因为父进程提前退出还是未wait调用,出现这种进程都应该格外注意程序是否设计有误。

第三行CPU占用率根据类型有以下几种情况:
(us) user: CPU在低nice值(高优先级)用户态所占用的时间(nice<=0)。正常情况下只要服务器不是很闲,那么大部分的CPU时间应该都在此执行这类程序
(sy) system: CPU处于内核态所占用的时间,操作系统通过系统调用(system call)从用户态陷入内核态,以执行特定的服务;通常情况下该值会比较小,但是当服务器执行的IO比较密集的时候,该值会比较大
(ni) nice: CPU在高nice值(低优先级)用户态以低优先级运行占用的时间(nice>0)。默认新启动的进程nice=0,是不会计入这里的,除非手动通过renice或者setpriority()的方式修改程序的nice值
(id) idle: CPU在空闲状态(执行kernel idle handler)所占用的时间
(wa) iowait: 等待IO完成做占用的时间
(hi) irq: 系统处理硬件中断所消耗的时间
(si) softirq: 系统处理软中断所消耗的时间,记住软中断分为softirqs、tasklets(其实是前者的特例)、work queues,不知道这里是统计的是哪些的时间,毕竟work queues的执行已经不是中断上下文了
(st) steal:

        

Tilix(Terminix):一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器

(Tilix)Terminix:一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器

现在,你可以很容易的找到大量的 Linux 终端模拟器,每一个都可以给用户留下深刻的印象。

但是,很多时候,我们会很难根据我们的喜好来找到一款心仪的日常使用的终端模拟器。这篇文章中,我们将会推荐一款叫做 Terminix 的令人激动的终端模拟机。

Terminix Linux 终端模拟器

Terminix 是一个使用 VTE GTK+ 3 组件的平铺式终端模拟器。使用 GTK 3 开发的原因主要是为了符合 GNOME HIG(人机接口

        

linux 性能分析 sar命令详解

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/OCPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。…

        

Linux内核参数配置

Linux在系统运行时修改内核参数(/proc/sys与/etc/sysctl.conf),而不需要重新引导系统,这个功能是通过/proc虚拟文件系统实现的。

在/proc/sys目录下存放着大多数的内核参数,并且设计成可以在系统运行的同时进行更改, 可以通过更改/proc/sys中内核参数对应的文件达到修改内核参数的目的(修改过后,保存配置文件就马上自动生效),不过重新启动机器后之前修改的参数值会失效,所以只能是一种临时参数变更方案。(适合调试内核参数优化值的时候使用,如果设置值有问题,重启服务器还原原来的设置参数值了。简单方便。)
    

Unix目录结构的来历

Unix(包含Linux)的初学者,常常会很困惑,不明白目录结构的含义何在。

举例来说,根目录下面有一个子目录/bin,用于存放二进制程序。但是,/usr子目录下面还有/usr/bin,以及/usr/local/bin,也用于存放二进制程序;某些系统甚至还有/opt/bin。它们有何区别?

长久以来,我也感到很费解,不明白为什么这样设计。像大多数人一样,我只是根据《Unix文件系统结构标准》(Filesystem Hierarchy Standard),死记硬背不同目录的区别。…

    

11 个 Linux 上最佳的图形化 Git 客户端

Git是软件开发和若干其他版本控制任务免费和开源的分布式版本控制系统。它被设计用来以应付一切从小到非常大的项目,基于速度,效率和数据完整性。

Linux用户主要通过命令行管理Git,不过,一些图形用户界面(GUI)Git 客户端可以促进Git在Linux桌面上的高效和可靠使用,并提供大多数命令行操作,如果不是所有命令行的话,完全可以满足你日常的需求。

下面是一些针对Linux桌面用户GUI的最好Git客户端。…

    

关于 linux 程序自动启动 /etc/rc.local以及/etc/init.d

1. /etc/rc.local
这是使用者自订开机启动程序,把需要开机自动运行的程序写在这个脚本里
--------引用----------------------
在完成 run level 3 的服务启动后,如果我还有其他的动作想要完成时,举例来说, 我还想要寄一封 mail 给某个系统管理帐号,通知他,系统刚刚重新开机完毕,那么,是否应该要制作一个 shell script 放置在 /etc/rc.d/init.d/ 里面,然后再以连结方式连结到 /etc/rc.d/rc3.d/ 里面呢?呵呵!当然不需要!还记得上一小节提到的 /etc/rc.d/rc.local 吧? 这个档案就可以执行您自己想要执行的系统指令了。像不像早期 DOS 年代的 autoexec.bat 与 config.sys 呢? ^_^…

还不知道用这些 Linux 快捷键吗?

近期在工作中发现经常性的使用一些重复性命令,经常性的修改一些长明令,感觉有必要科普一下 Shell 命令行的一些常见快捷键了,以便大家节省时间提高工作效率。
  下述所有命令在 Linux/unix 的 shell 下有效,这里以 bash 为主。如有出入,以你自己的服务器为准。本文所指的 Linux 主要指 RHEL/CentOS,unix 指的是 FreeBSD,这也是服务器中用得最多的版本。

虽然挖坑不埋,但依然忍不住要为 Linux 回答一个问题

【编者按】 前几日我们推荐了用户 @garfileo 的两篇《Linux 挖坑不埋指南》,受到众多关注,有人就其文中的一些观点产生了疑问,于是作者再写一篇《虽然挖坑不埋但依然忍不住要为 Linux 回答一个问题》,以解疑惑。这里再次推荐给大家阅读。

 

前两篇:

以下是原文内容。…