IBM REDP-4285-00 Manual De Usuario

Descargar
Página de 170
4285ch03.fm
Draft Document for Review May 4, 2007 11:35 am
82
 
Linux Performance and Tuning Guidelines
monitoring it, the CPU load will appear to be very balanced and not necessarily peaking on 
any CPU. Affinity is also useful in NUMA-based systems such as the IBM System x 3950, 
where it is important to keep memory, cache, and CPU access local to one another. 
3.2.3  Performance tuning options
The first step is to ensure that the system performance problem is being caused by the CPU 
and not one of the other subsystems. If the processor is the server bottleneck, then a number 
of actions can be taken to improve performance. These include:
򐂰
Ensure that no unnecessary programs are running in the background by using ps -ef. If 
you find such programs, stop them and use cron to schedule them to run at off-peak 
hours.
򐂰
Identify non-critical, CPU-intensive processes by using top and modify their priority using 
renice
.
򐂰
In an SMP-based machine, try using taskset to bind processes to CPUs to make sure that 
processes are not hopping between processors, causing cache flushes.
򐂰
Based on the running application, it may be better to scale up (bigger CPUs) than scale 
out (more CPUs). This depends on whether your application was designed to effectively 
take advantage of more processors. For example, a single-threaded application would 
scale better with a faster CPU and not with more CPUs.
򐂰
General options include making sure you are using the latest drivers and firmware, as this 
may affect the load they have on the CPU. 
3.3  Memory bottlenecks
On a Linux system, many programs run at the same time; these programs support multiple 
users and some processes are more used than others. Some of these programs use a 
portion of memory while the rest are “sleeping.” When an application accesses cache, the 
performance increases because an in-memory access retrieves data, thereby eliminating the 
need to access slower disks.
The OS uses an algorithm to control which programs will use physical memory and which are 
paged out. This is transparent to user programs. Page space is a file created by the OS on a 
disk partition to store user programs that are not currently in use. Typically, page sizes are 
4 KB or 8 KB. In Linux, the page size is defined by using the variable EXEC_PAGESIZE in the 
include/asm-<architecture>/param.h kernel header file. The process used to page a process 
out to disk is called 
pageout
.
3.3.1  Finding memory bottlenecks
Start your analysis by listing the applications that are running on the server. Determine how 
much physical memory and swap each application needs to run. Figure 3-1 on page 83 
shows KDE System Guard monitoring memory usage.