System Administration Guide: Advanced Administration

What's New in Managing System Performance?

This section describes new features for managing system performance.

DNLC Improvements

The directory name look-up cache (DNLC) is enhanced to provide improved performance when you access files in large directories with 1000 or more files.

The DNLC is a general file system service that caches the most recently referenced directory names and their associated vnodes. UFS directory entries are stored linearly on disk, which means that locating an entry requires searching each entry for the name. The addition of a new entry requires searching the entire directory to ensure that the name does not exist. To solve this performance problem, the DNLC caches entire directories in memory.

Another feature in this release is the DNLC caching of file objects that have been looked up, but do not exist. This feature is known as negative caching, and is useful because some applications repeatedly test to check if a file exists.

For more information, see Solaris Tunable Parameters Reference Manual.

The pargs and preap Commands

Two new commands, pargs and preap, improve process debugging. The pargs command can be used to print the arguments and environment variables associated with a live process or core file. The preap command can be used to remove defunct (zombie) processes.

The pargs command solves a long-standing problem of being unable to display all the arguments that are passed to a process with the ps command. Use the pargs command in combination with the pgrep command to display the arguments that are passed to a process, as follows:


# pargs `pgrep ttymon`
579:	/usr/lib/saf/ttymon -g -h -p system-name console login:  
-T sun -d /dev/console -l 
argv[0]: /usr/lib/saf/ttymon
argv[1]: -g
argv[2]: -h
argv[3]: -p
argv[4]: system-name console login: 
argv[5]: -T
argv[6]: sun
argv[7]: -d
argv[8]: /dev/console
argv[9]: -l
argv[10]: console
argv[11]: -m
argv[12]: ldterm,ttcompat
548:	/usr/lib/saf/ttymon
argv[0]: /usr/lib/saf/ttymon

Use the pargs -e command to display the environment variables that are associated with a process, as in the following example:


$ pargs -e 6763
6763: tcsh
envp[0]: DISPLAY=:0.0

You can use the pargs and preap commands to examine any process that you have the privileges to examine. As superuser, you can examine any process.

You can use the preap command to clean up a defunct (also called a zombie) process. A zombie process has not yet had its exit status reaped (or claimed) by its parent. These processes are generally harmless, but can consume system resources if they are numerous.

For information on using the preap command, see preap(1). For information on the using the pargs command, see proc(1).

Performance Tool

You can monitor system performance and system resource utilization with the Solaris Management Console's Performance Tool.

For information on allocating, monitoring, and controlling system resources with the Solaris resource management, see “Introduction to Solaris 9 Resource Manager” in System Administration Guide: Resource Management and Network Services.

For information on using and starting the Solaris Management Console, see “Working With the Management Console (Tasks)” in System Administration Guide: Basic Administration.

New Fair Share (FSS) and Fixed (FX) Schedulers

The FSS and FX schedulers are new user process schedulers. Both schedulers use the same range of priorities (0 to 59) as the time sharing (TS)/interactive (IA) scheduling classes.

FX is a fixed-priority scheduler that gives processes that run in it an assured priority. FX is not meant to be a default scheduler. TS balances loads. FX does not. You can run FX and TS on the same system, but if you set the priority too high for FX, you could starve the processes that run in TS.

The FSS guarantees application performance by explicitly allocating shares of CPU resources to projects. Additional advantages of the FSS are as follows:

FSS should not be used with TS or FX on the same system unless processor sets are used. If you use processor sets, you can mix TS, IA, and FX with FSS in one system as long as all the processes that run on each processor set are in one scheduling class to prevent them from competing for the same CPUs. The FX scheduler, in particular, should not be used in conjunction with the new FSS scheduling class unless processor sets are used, to prevent applications in the FX class from using priorities that are high enough to starve applications in the FSS class.

The following table identifies where to get more information about using these schedulers and other Solaris resource management features, such as projects and tasks, to better manage system resources.

Topic 

For More Information 

Using FSS and FX schedulers 

“Fair Share Scheduler” in System Administration Guide: Resource Management and Network Services

FSS 

FSS(7)

FX 

priocntl(1) and dispadmin(1M)

Projects 

“Projects and Tasks” in System Administration Guide: Resource Management and Network Services