
Linux
文章平均质量分 89
iteye_2535
这个作者很懒,什么都没留下…
展开
-
Linux 内核的文件 Cache 管理机制介绍
1 前言自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,使用得非常广泛,它与 Windows、UNIX 一起占据了操作系统领域几乎所有的市场份额。特别是在高性能计算领域,Linux 已经成为一个占主导地位的操作系统,在2005年6月全球TOP500 计算机中,有 301 台部署的是 Linux 操作系统。因此,研究和使用 Linux 已经成为开发者的不可...原创 2010-08-18 18:21:27 · 129 阅读 · 0 评论 -
自旋锁
概念何谓自旋锁?它是为为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无论是互斥锁,还是自旋锁,在任何时刻,最多只能有一个保持者,也就说,在任何时刻最多只能有一个执行单元获得锁。但是两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用...原创 2010-08-05 11:07:28 · 141 阅读 · 0 评论 -
内核比较: 2.6 内核中改进了内存管理
随着 Linux 内核的发展和成熟,更多的用户期待着 Linux 可以运行非常大的系统来处理科学分析应用程序或者甚至海量数据库。这些企业级的应用程序通常需要大量的内存才能好好运行。2.4 Linux 内核有识别相当大数量的内存的功能,但是 2.5 内核发生了很多改变,使其有能力以更有效的方式处理更大量的内存。反向映射在 Linux 内存管理器中,页表保持对进程使用的内存物理页的追踪,它...原创 2010-08-06 11:08:35 · 109 阅读 · 0 评论 -
内存管理内幕
为什么必须管理内存内存管理是计算机编程最为基本的领域之一。在很多脚本语言中,您不必担心内存是如何管理的,这并不能使得内存管理的重要性有一点点降低。对实际编程来说,理解您的内存管理器的能力与 局限性至关重要。在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、 半手工的以及自动的内存管理实践的基本概念。追溯到在 Apple II 上进行汇编语言编程的时代,那时...原创 2010-08-06 11:11:23 · 76 阅读 · 0 评论 -
Linux 内核剖析
由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先回顾一下 Linux 的简短历史,然后从较高的层次审视 Linux 内核的体系结构,最后介绍它的主要子系统。Linux 内核具有超过 600 万行的代码,因此本文不可能进行完整的介绍。请使用指向其他内容的链接进一步学习。Linux 的简短历史Linux 还是 GNU/Linux?您可能已经注意...原创 2010-08-06 11:15:47 · 114 阅读 · 0 评论 -
developerWorks 图书频道: C++ 应用程序性能优化,第 6 章:内存池
引言本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化的方法和实例。全书由 4 个篇组成,第 1 篇介绍 C++ 语言的对象模型,该篇是优化 C++ 程序的基础;第 2 篇主要针对如何优化 C++ 程序的内存使用;第 3 篇介绍如何优化程序的启动性能;第 4 篇介绍了三类性能优化工具,即内存分析工具、性能分析工具和 I/O 检测工具,它们是测量程序性能的利器。本章...原创 2010-08-06 11:16:30 · 132 阅读 · 0 评论 -
在 Linux 平台中调试 C/C++ 内存泄漏方法
由于 C 和 C++ 程序中完全由程序员自主申请和释放内存,稍不注意,就会在系统中导入内存错误。同时,内存错误往往非常严重,一般会带来诸如系统崩溃,内存耗尽这样严重的后果。从历史上看,来自计算机应急响应小组和供应商的许多最严重的安全公告都是由简单的内存错误造成的。自从 70 年代末期以来,C/C++ 程序员就一直讨论此类错误,但其影响在 2007 年仍然很大。与许多其他类型的常见错误不同,内存...原创 2010-08-06 11:29:42 · 634 阅读 · 0 评论 -
降低 Linux 内存开销
Linux 广受追捧的一个优点是它比 Microsoft® Windows® 的效率更高,因此在不太前沿的硬件上也能很好地执行。对于依然使用 Windows 98 时代的机器的人来说,最新最卓越的软件(特别是安全补丁)已经不再支持这些机器,因此这种性能优势使 Linux 成为颇具吸引力的升级产品。然而,问题的真相在于虽然 Linux 内核仍然可以配置成合理的大小和效率,但由于新计算机的处理...原创 2010-08-06 11:30:48 · 668 阅读 · 0 评论 -
Linux slab 分配器剖析
良好的操作系统性能部分依赖于操作系统有效管理资源的能力。在过去,堆内存管理器是实际的规范,但是其性能会受到内存碎片和内存回收需求的影响。现在,Linux® 内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配。本文将探索 slab 分配器背后所采用的思想,并介绍这种方法提供的接口和用法。动态内存管理内存管理的目...原创 2010-08-06 11:32:09 · 94 阅读 · 0 评论 -
内存详解
文档选项打印本页将此页作为电子邮件发送样例代码英文原文级别: 中级Andrew Hall, 软件工程师, IBM2009 年 5 月 11 日Java™ 堆耗尽并不是造成 java.lang.OutOfMemoryError 的惟一原...原创 2010-08-06 11:34:19 · 181 阅读 · 0 评论 -
RunTime: 块内存复制
内存复制在计算机中,内存复制经常而普遍。它们出现在联网应用、数据库应用、科学应用以及几乎您能想得到的其它任何应用和服务中。因为它们是如此的通用,所以程序员对于内存复制有点满不在乎,而且还采用了各种各样的编程技巧来完成复制。内存复制可以是整块内存的简单移动,也可以根本不是一个复制而类似一个访问模式。一个 访问模式的形成是通过访问一个矩阵中的各栏。比如您需要 12x12 矩阵中所有第 12...原创 2010-08-06 12:32:51 · 465 阅读 · 0 评论 -
运行时: 块内存复制,第 2 部分
我的 前一专栏专注于 16-MB 的内存块,这次我将讨论大小范围在 4 字节到 64 MB 之间的内存块。先前,我检验了各种执行内存传送的方法并确定使用系统提供的 memcpy() 例程是一个很不错的主意(至少在学会其它更好的方法之前,我会一直这样认为)。在此处描述的测试中,我运行了几次传送以确保数据是可再生的。我的测试仅在内存为 576 MB 的 ThinkPad 600X (650 M...原创 2010-08-06 12:33:50 · 132 阅读 · 0 评论 -
用 RPM 打包软件,第 1 部分
RPM(Red Hat Package Manager)是用于 Linux 分发版(distribution)的最常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。RPM 是 Linux“标准基本库”版本 1.0.0 指定的安装工具。在 Linux 分发版前 10 名中,有 8 个是基于 RPM(请参阅“Comparison of Linux Distribu...原创 2012-03-26 10:23:35 · 120 阅读 · 0 评论 -
用 RPM 打包软件,第 2 部分
不作为 root 用户来构建 RPM 包正如您在第 1 部分中看到的那样,构建 RPM 软件包通常要求您以 root 用户登录。 其原因如下:RPM 在打包过程中安装软件,并且通常只有 root 用户可以写到安装目录中。RPM 需要读写 /usr/src/redhat(一般用户不能修改它)下的目录。我们在 第 1 部分中探讨了通过用 RPM 构建根(build root...原创 2012-03-26 10:28:03 · 111 阅读 · 0 评论 -
用 RPM 打包软件,第 3 部分
安装和卸载脚本的工作原理安装和卸载脚本看起来很简单,但它们工作原理中的一些意外可能会引起大问题。这里是一些基本信息。可以将下列四节中的任意一个添加到 .spec 文件, 它列出了在您的包安装期间各个点上运行的 shell 脚本:%pre在安装包之前运行%post在安装包之后运行%preun在卸载包之前运行%postun在卸载包之后运行尤其要注意 %instal...原创 2012-03-26 10:30:13 · 131 阅读 · 0 评论 -
linux下内存释放问题
总有很多朋友对于Linux的内存管理有疑问,之前一篇[转]理解Linux的性能 日志似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。 当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有...原创 2010-08-02 23:15:15 · 287 阅读 · 0 评论 -
理解Linux的性能
项目中常遇到需要对目前运行的系统进行效率分析,或碰到客户咨询如何优化系统的效率问题。更多的情况是,在系统出现问题的时候,需要分析原因,定位系统 故障或瓶颈,当然,最好是可以一并解决故障。但实际上,操作系统优化是一个非常复杂的问题,况且linux有自己一套有别于其他操作系统管理的机制,由此 会引起很多不必要的误解和麻烦。自问我是写不错条理性的文章了,只能转一份高人写的文档供参考。(文章根据...原创 2010-08-02 23:13:57 · 95 阅读 · 0 评论 -
Memory: VSS/RSS/PSS/USS
Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存...原创 2010-08-25 13:54:01 · 509 阅读 · 0 评论 -
Linux进程虚拟内存和物理内存
先介绍几个基本概念:SIZE: 进程使用的地址空间, 如果进程映射了100M的内存, 进程的地址空间将报告为100M内存. 事实上, 这个大小不是一个程序实际使用的内存数.RSS: "Resident Set Size", 实际驻留"在内存中"的内存数. 不包括已经交换出去的代码. 举一个例子: 如果你有一个程序使用了100K内存, 操作系统交换出40K内存, 那么RSS为...原创 2010-08-25 15:39:46 · 572 阅读 · 0 评论 -
smem memory reporting tool
smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size (PSS), which is a more meaningful representation of the ...原创 2010-08-25 15:41:52 · 154 阅读 · 0 评论 -
linux下top命令参数解释
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 ...原创 2010-09-03 14:56:24 · 227 阅读 · 0 评论 -
linux上buffer和cache的区别
free free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free # free total used free shared buffers cached Mem: 255988 231704 24284 0 6432 139292 -/+ buffers/cache: 85980 170008 Swap: 746980 0 746...原创 2010-09-03 15:14:02 · 144 阅读 · 0 评论 -
linux内存管理概述
Linux中的地址空间(一)有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核编译后地址空间在什么范围内?要对外设进行访问,I/O的地址空间又是什么样的?先回答第一个问题。Linux最常见的可执行文件格式为elf(Executable and Linkable Format)。在elf格式的可执行代码中,ld总是从0×8000000开始安排程序的“代码段”,对...原创 2010-09-03 22:44:55 · 286 阅读 · 0 评论 -
Linux内存管理机制
内存是Linux内核所管理的最重要的资源之一,内存管理系统是操作系统中最为重要的部分。对于Linux的初学者来说,熟悉Linux的内存管理非常重要。 进程是运行于虚拟地址空间的一个程序。可以说,任何在Linux系统下运行的程序都是进程。Linux系统中包括交互进程和批处理进程。交互进程是由Shell控制和运行的,既可以在前台运行,也可以在后台运行。批处理进程不属于某个终端,被提交到一个...原创 2010-09-03 22:48:23 · 121 阅读 · 0 评论 -
HowTo: Profile Memory in a Linux System
HOWTO: Profile Memory in a Linux System1. Introduction It's important to determine how your system utilizes it's resources. If your systems performance is unacceptable, it is n...原创 2010-09-03 22:56:27 · 124 阅读 · 0 评论 -
Linux: How to measure actual memory usage of an application or process?
http://stackoverflow.com/questions/131303/linux-how-to-measure-actual-memory-usage-of-an-application-or-process Hi,How do you measure the memory usage of an application or process in Linux? I'...原创 2010-09-03 23:31:59 · 149 阅读 · 0 评论 -
Memory usage analysis
Memory usage analysisSystem-wide memory analysisTop/FreeThese two command-line tools are the two most well-known and (especially with the default columns shown) very useless and misleading....原创 2010-09-03 23:33:13 · 251 阅读 · 0 评论 -
学习 Linux,101: 使用 vi 编辑文件
概述在本文中,您将学习 vi 编辑器的基本使用方法,这个编辑器在大部分 Linux 或 UNIX 中都可以见到。您将学习:使用 vi 导航文档使用基本的 vi 模型插入、编辑、删除、复制和查找文本本文将帮助您准备 Linux Professional Institute's Junior Level Administration (LPIC-1) 考试的 103 主题...2010-04-05 00:30:38 · 148 阅读 · 0 评论 -
使用 Crash 工具分析 Linux dump 文件
前言Linux 内核(以下简称内核)是一个不与特定进程相关的功能集合,内核的代码很难轻易的在调试器中执行和跟踪。开发者认为,内核如果发生了错误,就不应该继续运行。因此内核发生错误时,它的行为通常被设定为系统崩溃,机器重启。基于动态存储器的电气特性,机器重启后,上次错误发生时的现场会遭到破坏,这使得查找内核的错误变得异常困难。内核社区和一些商业公司为此开发了很多种调试技术和工具,希望...2010-04-05 20:27:22 · 2422 阅读 · 0 评论 -
学习 Linux,101: RPM 和 YUM 包管理
概述在本文中,学习如何在 Linux 系统上使用 RPM 和 YUM 包管理工具管理包。学习:使用 RPM 和 YUM 安装、卸载、升级和删除包获取版本、状态、依赖关系、完整性和签名等 RPM 包相关信息判断一个包提供哪些文件,查明某个文件来自哪个包本文帮助您准备 Linux Professional Institute's Junior Level Adminis...原创 2010-06-16 13:49:44 · 271 阅读 · 0 评论 -
分析linux上的native内存泄露
Running native profiling on LinuxRead the information providedIntroductionSeveral memory profilers are available for the Linux operating system, which fit into the following categories...原创 2010-07-01 11:15:43 · 276 阅读 · 0 评论 -
使用 RPM 打包软件,第 1 部分: 构建和分发包
顾名思义,开源软件的主要优势就是允许了解应用程序的内部工作原理。有了源代码,您可以研究应用程序的工作原理,更改、改进和扩展其操作,(在应用程序许可允许下)借鉴代码并将其用于其他用途,以及将应用程序移植到新平台上。然而,这种自由访问并不总是我们所需要的。例如,用户可能不希望从源代码进行构建。相反,他或她可能只想像传统 “紧凑包装” 的应用程序一样安装该软件:插入媒体、运行安装程序、回答一系...原创 2012-03-26 10:31:18 · 152 阅读 · 0 评论