A free ebook that IBM released early on the internet
10 years, the reference value is still very big.
Domestic translation into Chinese online reading version.
See two URLs below
Linux Performance and Tuning guidelines
<linux Performance Tuning Guide >
Https://www.gitbook.com/book/lihz1990/transoflptg/details
=========================================
Server Optimization Ideas
Manage the change process
Management change and performance optimization are not directly related, but may be the most important factor for successful performance tuning. This may be the second consideration, but as a reminder, we emphasize:
- Implement a reasonable management process change before tuning
- Never upgrade in a production system
- In the tuning process, only one variable is modified at a time
- Repeatedly test for performance-enhancing parameters, and sometimes the results of statistics are more reliable
- Organize your success parameters into documents and share them with the community, even if you think they are trivial. Any results obtained in the production environment are of great use to Linux performance.
CPU Performance Tuning Options
The first step is to make sure that the system performance problem is caused by the CPU, not the other subsystems. If the processor is a server bottleneck, you can use the following methods to enhance performance:
- Use Ps-ef to make sure that there are no unnecessary process programs running in the background, if you find such a program, turn it off, or use cron to run it off-peak.
- Find a non-critical, CPU-intensive process with top and then use Renice to modify its priority.
- On an SMP-based machine, try to bind the process to the CPU using the Taskset command, avoiding the process switching between multiple processors, causing the cache to flush.
- Based on running applications, verify that your application is using multiprocessor efficiently. To decide if you should use a stronger CPU instead of more CPUs. For example, a single-threaded application would benefit from a faster CPU, and it would be useless to increase the number of CPUs.
- There are other ways, for example, to make sure you are using the latest drivers and firmware, which can affect their load on the system.
Memory Performance Tuning Options
If it is determined to be a memory bottleneck, you can do the following:
- Tune swap space using Bigpages, hugetlb, and shared memory.
- Increase or decrease the page size.
- Improved active and inactive memory handling
- Adjust the page-out rate
- Restrict the resources available to each user on the server
- Turn off services that are not available
- Increase memory
Disk IO Performance Tuning options
After determining the disk subsystem bottleneck, there is a possible workaround:
- If the load is sequential and the pressure is on the controller's bandwidth, the solution is to add a faster disk controller. However, if the load is random, the bottleneck may be on disk, and adding more disks can help increase performance.
- By adding more disks to the raid and spreading the data across multiple physical disks, you can enhance both read and write performance. Increasing the disk will increase the number of read/write I/Os per second. Also, use hardware RAID instead of the RAID software provided by Linux. If the hardware Raid,raid level is not visible to the operating system.
- Consider using a Linux logical volume partition instead of a single large disk or logical volume without partitions.
- Transfer the processing load to other systems (users, applications, or services) on the network.
- Add RAM. Adding memory increases system disk buffering and improves disk responsiveness.
Network Performance Tuning
When a network bottleneck occurs, you should try the following:
- Make sure that the NIC configuration matches the router switch configuration.
- Modify how subnets are organized
- Use a faster network card
- Adjust the TCP kernel parameters of the IPv4 appropriately. Some safety-related parameter adjustments will improve performance, as described in the next chapter.
- If possible, replace the network card and then re-detect performance.
- If possible, add the NIC and bind it to a NIC group.
<linux Performance Tuning Guide > Key ideas flow