GCC 编译优化指南

前言网上关于编译优化的文章很多,但大多零零散散,不成体系,本文试图给出一个完整和清晰的优化思路,同时提供在实践中如何进行优化的详尽参考。但是,在介绍所有优化知识之前首先引用LFS-Book中的一句忠告:“使用编译器优化得到的小幅度性能提升,与它带来的风险相比微不足道”。你还要进行优化吗?%@&#=^%~*# ... OK, crazy guy! Let's Go!!在继续之前,作者还是奉劝各位:如...
阅读(372) 评论(0)

GRUB2配置文件"grub.cfg"详解(GRUB2实战手册)

GRUB2模块对于GRUB-2.0.2版本来说,官方提供的模块一共有200多个,这些模块大致可以分为以下几类(模块间的依赖关系位于"moddep.lst"文件中):命令模块[command.lst]提供了各种不同的功能,类似标准Unix命令,一共将近100个。例如:cat cpuid echo halt lspci chainloader initrd linux password ...加密模块...
阅读(356) 评论(0)

Linux 内核引导选项简介

概述内核引导选项大体上可以分为两类:一类与设备无关、另一类与设备有关。与设备有关的引导选项多如牛毛,需要你自己阅读内核中的相应驱动程序源码以获取其能够接受的引导选项。比如,如果你想知道可以向 AHA1542 SCSI 驱动程序传递哪些引导选项,那么就查看 drivers/scsi/aha1542.c 文件,一般在前面 100 行注释里就可以找到所接受的引导选项说明。大多数选项是通过"__setup...
阅读(493) 评论(0)

Linux系统网络性能实例分析

由于TCP/IP是使用最普遍的Internet协议,下面只集中讨论TCP/IP 栈和以太网(Ethernet)。术语 LinuxTCP/IP栈和 Linux网络栈可互换使用,因为 TCP/IP栈是 Linux内核的组成部分,也被看作是 Linux默认的网络栈。 一、实例分析中使用的基准测试 1、  NetBench    NetBench是一种 Ziff-Davis基准测试, 可以测量文件服务器对...
阅读(1045) 评论(1)

数据库服务器的性能调优-续

一、进程管理    企业级数据库服务器可能拥有数千个并发访问数据库的用户。某些用户可能执行只需较少处理能力的简单事务,而其他用户则可能执行涉及更多系统资源的复杂事务。 数据库性能常常基于诸如每小时的事务数或 X个并发连接下的最小响应时间等度量来讨论。这些性能约束由企业施加,以便确保客户的质量保证等级。由于对并发处理具有如此高的需求,企业级数据库服务器需要运行于大型 SMP服务器上。早期的 Linu...
阅读(787) 评论(1)

数据库服务器的性能调优

一、I/O调优    在进行 I/O调优时必须做出许多决策。是否使用原始设备或文件系统?是否使用直接 I/O?应该为数据库选取多大的块尺寸? 如果正在严格地执行在线事务处理(其特征为小型的随机读/写操作)工作负荷, 则应该选择较小的块尺寸如 2KB。 对于 DSS中长期运行的查询操作而言,在实现了复杂的查询优化器以及复杂的内存(分类/散列区域)参数控制的数据库中, 更大的块尺寸会提高数据库扫描速度...
阅读(712) 评论(0)

Linux 虚存 linux2.6内核特性

一、大型页面的支持    当代计算机体系结构大都支持多种页面大小,例如,IA-32体系结构支持4KB或4MB的页面, Linux操作系统只是将大型页面用于映射实际的内核映像。大型页面的使用主要是为了改进高性能计算(HPC)以及其他内存密集型应用的性能。任何占用大量虚存的访存密集型应用程序都可以使用大型页面来改进性能(Linux使用 2MB或 4MB的大型页面, AIX使用 16MB的大型页面,而...
阅读(815) 评论(0)

Linux 虚存的性能问题

虚存子系统是所有 UNIX 系统的核心组件。下面讨论虚存系统的实现及其对操作系统中几乎其他所有子系统的作用和影响。首先详细说明一些基本的内存管理问题;然后具体分析 Linux 操作系统如何实施虚存管理任务。进程(也标记为任务或默认线程)通过虚存子系统能够查看地址空间中的线性字节范围,这个功能与物理内存中的物理布局或者分片情况无关。 线程可以在一个呈现为 CPU 全部地址空间的虚拟环境中执行。这种(...
阅读(471) 评论(0)

linux系统性能监控--网络利用率

Linux中提供了许多有助于评估各种 Linux网络性能的监视工具,其中一些监视工具也可用于解决网络问题以及监视性能。 Linux内核为用户提供了大量的网络系统信息,这有助于监视网络的健康状态并检测在配置、运行期间以及性能方面出现的问题。    下面分析在大多数 Linux主要发行版本中提供的一些网络工具,包括 netstat、nfsstat、 tcpdump、 ethtool、 snmp、 if...
阅读(1231) 评论(0)

linux系统性能监控--I/O利用率

尽管整体的处理器速度、 内存大小以及 I/O执行速度在不断提高,但 I/O操作的吞吐率和延迟性能仍然要比等价的内存访问操作低多个数量级。另外,由于许多工作负荷都拥有重要的I/O组件,I/O处理很容易成为整体吞吐率和应用整体响应时间的重要瓶颈。针对 I/O操作密集的应用, 性能分析人员必须通过工具来获取关于 I/O子系统操作的信息 。    磁盘 I/O的性能经常基于吞吐率和延迟来评估。 磁盘驱动器...
阅读(794) 评论(0)

linux系统性能监控--内存利用率

Linux提供了对物理内存进行合理、高效的访问并可以访问潜在的海量虚存的技术。虚存通常稍多于操作系统实际拥有的内存容量,以便将较少使用的数据卸载到磁盘存储器上,同时又呈现出系统拥有大量物理内存的假象。糟糕的是,卸载内存的开销可能会比应用延迟高出数十甚至上百倍。如果被换出到磁盘上的内存空间是错误的内存页,或者如果应用程序的当前内存印迹大于物理内存容量的话,那么这些过高的延迟会极大地影响应用的响应时间...
阅读(1008) 评论(0)

linux系统性能监控--CPU利用率

在对系统的方法化分析中,首要且最基本的工具之一常常是对系统的 CPU利用率进行简单测量。 Linux以及大多数基于 UNIX的操作系统都提供了一条命令来显示系统的平均负荷(loadaverage) 。[huangc@V-02-01-00860 ~]$ uptime 11:18:05 up 78 days, 1:17, 11 users, load average: 0.20, 0.13, 0...
阅读(1306) 评论(0)

在linux系统中I/O 调度的选择

I/O 调度算法再各个进程竞争磁盘I/O的时候担当了裁判的角色。他要求请求的次序和时机做最优化的处理,以求得尽可能最好的整体I/O性能。在linux下面列出4种调度算法CFQ (Completely Fair Queuing 完全公平的排队)(elevator=cfq):这是默认算法,对于通用服务器来说通常是最好的选择。它试图均匀地分布对I/O带宽的访问。在多媒体应用, 总能保证audio、vid...
阅读(874) 评论(0)

POSIX 消息队列相关问题

一、查看和删除消息队列要想看到创建的posix消息队列,需要在root用户下执行以下操作:# mkdir /dev/mqueue# mount -t mqueue none /dev/mqueue删除队列使用 rm 命令即可。二、查看和调整消息队列限制参考 《Linux进程通信之POSIX消息队列》1、查看消息队列大小的限制# ulimit -a |grep messagePOSIX messag...
阅读(6315) 评论(0)

linux系统的7种运行级别

Linux系统有7个运行级别(runlevel)运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆运行级别2:多用户状态(没有NFS)运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式运行级别4:系统未使用,保留运行级别5:X11控制台,登陆后进入图形GUI模式运行级别6:系统正常关闭并重启,...
阅读(6273) 评论(0)

如何判断是否开启超线程

“超线程(Hyper-Threading,简称“HT”)”技术。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。        超线程技术是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,理论上要像两颗CPU一样在同一时间执行两个线程,虽然采用超线程技术能...
阅读(6992) 评论(0)

如何扩展/删除swap分区

背景:         由于安装Oracle 的时候,swap太小只划分了4G,后期发现交换分区太小,不满足使用,于是进行了swap分区的扩容过程:        swap分区的扩展很简单,但是需要root用户权限.[root@localhost ~]# dd if=/dev/zero of=/swap bs=1024M count=2 记录了2+0 的读入 记录了2+0 的写出 21474836...
阅读(1439) 评论(0)

Linux 中交换空间 (swap)应该分多大才好?

前一段时间,我们机房中一台Linux服务器运行缓慢,系统服务出现间歇性停止响应,让我过去处理一下这一问题,登录到服务器之后,发现此服务器的物理内存是16G,而最初装机的时候,系统管理人员却只分配了4G的虚拟内存。查看内存的使用状况,物理内存并没有完全耗尽,但虚拟内存已经耗尽,整个系统CPU负载和磁盘IO都非常高。        知道了问题所在是由于交换分区不足导致,那么解决方法就是:将虚拟内存通过...
阅读(1091) 评论(0)

Linux SWAP 交换分区配置说明

一.SWAP 说明1.1 SWAP 概述        当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。        这个是SWAP 交换分...
阅读(835) 评论(0)

Linux中的SWAP交换分区

大多数 Linux 在系统安装时都会提醒并建议你划分一个 SWAP 交换分区,如果你是从 Windows 切换到 Linux 的新用户,兴许对这个 SWAP 会感到十分疑惑。        SWAP 交换分区到底是干什么用的呢?我们是否真的需要划一个 SWAP 分区呢?答案是:视情况而定!SWAP 分区在一些情况下可以提升 Linux 操作系统性能,但在某些情况下又会成为系统运行的瓶颈,下面我们就...
阅读(834) 评论(0)
655条 共33页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:925217次
    • 积分:12844
    • 等级:
    • 排名:千里之外
    • 原创:304篇
    • 转载:350篇
    • 译文:1篇
    • 评论:42条