Interaction With Non-Global Zones
Resource management features can be used with zones to further refine the application environment. Interactions between these features and zones are described in applicable sections in this guide.
When to Use Resource Management
Use resource management to ensure that your applications have the required response times.
Resource management can also increase resource utilization. By categorizing and prioritizing usage, you can effectively use reserve capacity during off-peak periods, often eliminating the need for additional processing power. You can also ensure that resources are not wasted because of load variability.
Server Consolidation
Resource management is ideal for environments that consolidate a number of applications on a single server.
The cost and complexity of managing numerous machines encourages the consolidation of several applications on larger, more scalable servers. Instead of running each workload on a separate system, with full access to that system's resources, you can use resource management software to segregate workloads within the system. Resource management enables you to lower overall total cost of ownership by running and controlling several dissimilar applications on a single Solaris system.
If you are providing Internet and application services, you can use resource management to do the following:
Host multiple web servers on a single machine. You can control the resource consumption for each web site and you can protect each site from the potential excesses of other sites.
Prevent a faulty common gateway interface (CGI) script from exhausting CPU resources.
Stop an incorrectly behaving application from leaking all available virtual memory.
Ensure that one customer's applications are not affected by another customer's applications that run at the same site.
Provide differentiated levels or classes of service on the same machine.
Obtain accounting information for billing purposes.
Supporting a Large or Varied User Population
Use resource management features in any system that has a large, diverse user base, such as an educational institution. If you have a mix of workloads, the software can be configured to give priority to specific projects.
For example, in large brokerage firms, traders intermittently require fast access to execute a query or to perform a calculation. Other system users, however, have more consistent workloads. If you allocate a proportionately larger amount of processing power to the traders' projects, the traders have the responsiveness that they need.
Resource management is also ideal for supporting thin-client systems. These platforms provide stateless consoles with frame buffers and input devices, such as smart cards. The actual computation is done on a shared server, resulting in a timesharing type of environment. Use resource management features to isolate the users on the server. Then, a user who generates excess load does not monopolize hardware resources and significantly impact others who use the system.
Setting Up Resource Management (Task Map)
The following task map provides a high-level overview of the steps that are involved in setting up resource management on your system.
Task | Description | For Instructions |
---|---|---|
Identify the workloads on your system and categorize each workload by project. | Create project entries in either the /etc/project file, in the NIS map, or in the LDAP directory service. | |
Prioritize the workloads on your system. | Determine which applications are critical. These workloads might require preferential access to resources. | Refer to your business service goals. |
Monitor real-time activity on your system. | Use performance tools to view the current resource consumption of workloads that are running on your system. You can then evaluate whether you must restrict access to a given resource or isolate particular workloads from other workloads. | Monitoring by System and cpustat(1M), iostat(1M), mpstat(1M), prstat(1M), sar(1), and vmstat(1M) man pages |
Make temporary modifications to the workloads that are running on your system. | To determine which values can be altered, refer to the resource controls that are available in the Solaris system. You can update the values from the command line while the task or process is running. | Available Resource Controls, Global and Local Actions on Resource Control Values, Temporarily Updating Resource Control Values on a Running System and rctladm(1M) and prctl(1) man pages. |
Set resource controls and project attributes for every project entry in the project database or naming service project database. | Each project entry in the /etc/project file or the naming service project database can contain one or more resource controls or attributes. Resource controls constrain tasks and processes attached to that project. For each threshold value that is placed on a resource control, you can associate one or more actions to be taken when that value is reached. You can set resource controls by using the command-line interface. Certain configuration parameters can also be set by using the Solaris Management Console. | project Database, Local /etc/project File Format, Available Resource Controls, Global and Local Actions on Resource Control Values, and Chapter 8, Fair Share Scheduler (Overview) |
Place an upper bound on the resource consumption of physical memory by collections of processes attached to a project. | The resource cap enforcement daemon will enforce the physical memory resource cap defined for the project's rcap.max-rss attribute in the /etc/project file. | project Database and Chapter 10, Physical Memory Control Using the Resource Capping Daemon (Overview) |
Create resource pool configurations. | Resource pools provide a way to partition system resources, such as processors, and maintain those partitions across reboots. You can add one project.pool attribute to each entry in the /etc/project file. | |
Make the fair share scheduler (FSS) your default system scheduler. | Ensure that all user processes in either a single CPU system or a processor set belong to the same scheduling class. | Configuring the FSS and dispadmin(1M) man page |
Activate the extended accounting facility to monitor and record resource consumption on a task or process basis. | Use extended accounting data to assess current resource controls and to plan capacity requirements for future workloads. Aggregate usage on a system-wide basis can be tracked. To obtain complete usage statistics for related workloads that span more than one system, the project name can be shared across several machines. | How to Activate Extended Accounting for Processes, Tasks, and Flows and acctadm(1M) man page |
(Optional) If you need to make additional adjustments to your configuration, you can continue to alter the values from the command line. You can alter the values while the task or process is running. | Modifications to existing tasks can be applied on a temporary basis without restarting the project. Tune the values until you are satisfied with the performance. Then, update the current values in the /etc/project file or in the naming service project database. | Temporarily Updating Resource Control Values on a Running System and rctladm(1M) and prctl(1) man pages |
(Optional) Capture extended accounting data. | Write extended accounting records for active processes and active tasks. The files that are produced can be used for planning, chargeback, and billing purposes. There is also a Practical Extraction and Report Language (Perl) interface to libexacct that enables you to develop customized reporting and extraction scripts. | wracct(1M) man page and Perl Interface to libexacct |