Manual De UsuarioTabla de contenidosFront cover1Contents5Notices9Trademarks10Preface11How this Redpaper is structured11The team that wrote this Redpaper12Become a published author13Comments welcome13Chapter 1. Understanding the Linux operating system151.1 Linux process management171.1.1 What is a process?171.1.2 Lifecycle of a process181.1.3 Thread181.1.4 Process priority and nice level191.1.5 Context switching201.1.6 Interrupt handling201.1.7 Process state211.1.8 Process memory segments221.1.9 Linux CPU scheduler231.2 Linux memory architecture251.2.1 Physical and virtual memory251.2.2 Virtual memory manager271.3 Linux file systems291.3.1 Virtual file system291.3.2 Journaling301.3.3 Ext2311.3.4 Ext3321.3.5 ReiserFS331.3.6 Journal File System331.3.7 XFS331.4 Disk I/O subsystem331.4.1 I/O subsystem architecture341.4.2 Cache351.4.3 Block layer371.4.4 I/O device driver381.4.5 RAID and Storage system391.5 Network subsystem401.5.1 Networking implementation401.5.2 TCP/IP441.5.3 Offload471.5.4 Bonding module481.6 Understanding Linux performance metrics481.6.1 Processor metrics481.6.2 Memory metrics491.6.3 Network interface metrics501.6.4 Block device metrics50Chapter 2. Monitoring and benchmark tools532.1 Introduction542.2 Overview of tool function542.3 Monitoring tools552.3.1 top552.3.2 vmstat562.3.3 uptime572.3.4 ps and pstree582.3.5 free602.3.6 iostat622.3.7 sar642.3.8 mpstat652.3.9 numastat662.3.10 pmap662.3.11 netstat672.3.12 iptraf682.3.13 tcpdump / ethereal692.3.14 nmon722.3.15 strace732.3.16 Proc file system742.3.17 KDE System Guard762.3.18 Gnome System Monitor812.3.19 Capacity Manager812.4 Benchmark tools842.4.1 LMbench852.4.2 IOzone862.4.3 netperf872.4.4 Other useful tools90Chapter 3. Analyzing performance bottlenecks913.1 Identifying bottlenecks923.1.1 Gathering information923.1.2 Analyzing the server’s performance943.2 CPU bottlenecks953.2.1 Finding CPU bottlenecks953.2.2 SMP953.2.3 Performance tuning options963.3 Memory bottlenecks963.3.1 Finding memory bottlenecks963.3.2 Performance tuning options983.4 Disk bottlenecks983.4.1 Finding disk bottlenecks983.4.2 Performance tuning options1013.5 Network bottlenecks1013.5.1 Finding network bottlenecks1013.5.2 Performance tuning options103Chapter 4. Tuning the operating system1054.1 Tuning principals1064.1.1 Change management1064.2 Installation considerations1064.2.1 Installation1064.2.2 Check the current configuration1084.2.3 Minimize resource use1114.2.4 SELinux1164.2.5 Compiling the kernel1184.3 Changing kernel parameters1184.3.1 Where the parameters are stored1214.3.2 Using the sysctl command1224.4 Tuning the processor subsystem1224.4.1 Tuning process priority1234.4.2 CPU affinity for interrupt handling1234.4.3 Considerations for NUMA systems1234.5 Tuning the vm subsystem1244.5.1 Setting kernel swap and pdflush behavior1244.5.2 Swap partition1254.5.3 HugeTLBfs1264.6 Tuning the disk subsystem1274.6.1 Hardware considerations before installing Linux1284.6.2 I/O elevator tuning and selection1304.6.3 File system selection and tuning1354.7 Tuning the network subsystem1394.7.1 Considerations of traffic characteristics1394.7.2 Speed and duplexing1404.7.3 MTU size1414.7.4 Increasing network buffers1414.7.5 Additional TCP/IP tuning1434.7.6 Performance impact of Netfilter1474.7.7 Offload configuration1484.7.8 Increasing the packet queues1504.7.9 Increasing the transmit queue length1504.7.10 Decreasing interrupts150Appendix A. Testing configurations153Hardware and software configurations154Linux installed on guest IBM z/VM systems154Linux installed on IBM System x servers154Abbreviations and acronyms157Related publications159IBM Redbooks159Other publications159Online resources159How to get IBM Redbooks161Help from IBM161Index163Back cover170Tamaño: 4 MBPáginas: 170Language: EnglishManuales abiertas