- 3,727,523 Users
- 2,245,404 Discussions
- 7,852,848 Comments
- 380.8K All Categories
- 16 Data
- 362.2K Big Data Appliance
- 7 Data Science
- 2.3K Databases
- 683 General Database Discussions
- 32 Multilingual Engine
- 499 MySQL Community Space
- 10 NoSQL Database
- 7.7K Oracle Database Express Edition (XE)
- 2.8K ORDS, SODA & JSON in the Database
- 424 SQLcl
- 69 SQL Developer Data Modeler
- 185.2K SQL & PL/SQL
- 21.1K SQL Developer
- 2.7K Development
- 3 Developer Projects
- 32 Programming Languages
- 135.9K Development Tools
- 18 DevOps
- 3K QA/Testing
- 385 Java
- 16 Java Learning Subscription
- 14 Database Connectivity
- 72 Java Community Process
- 3 Java 25
- 14 Java APIs
- 141.2K Java Development Tools
- 14 Java EE (Java Enterprise Edition)
- 153K Java Essentials
- 135 Java 8 Questions
- 86.2K Java Programming
- 270 Java Lambda MOOC
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 18 Java SE
- 13.8K Java Security
- 4 Java User Groups
- 18 Programs
- 157 LiveLabs
- 36 Workshops
- 11 Software
- 5 Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 4 Deutsche Oracle Community
- 17 Español
- 1.9K Japanese
- 4 Portuguese
Software Interrupt time – ‘si’ time in top
CPU consumption in Unix/Linux operating systems are studied using 8 different metrics: User CPU time, System CPU time, nice CPU time, Idle CPU time, Waiting CPU time, Hardware Interrupt CPU time, Software Interrupt CPU time, Stolen CPU time. In this article let us study about ‘Software Interrupt CPU time’.
What is Software Interrupt CPU time?
To understand the ‘software interrupt time’, one must understand ‘software interrupts’ first. Software interrupts can be triggered because of the following events:
a. When software programs run in to exceptional condition such as a divide by zero, accessing unavailable memory
b. When special Instruction in the application code causes an interrupt when the processor executes it
c. Some of the hardware interrupts might take a long time to complete. In such scenarios, hardware interrupts can be deferred to execute at a later point of time through software interrupts. Software interrupts can be scheduled to run independently or on any CPU in the device or even run concurrently. On the other hand these flexibilities don’t exist in hardware interrupts.
Amount of time CPU spends in processing these software interrupt signals are called ‘Software interrupt time’.
How to find Software Interrupt CPU time?
Software Interrupt CPU time can be found from the following sources:
a. You can use web-based root cause analysis tools like yCrash to report ‘software interrupt’ CPU time. Tool is capable of generating alerts if ‘software interrupt’ CPU time goes beyond the threshold.
b. ‘software interrupt’ CPU time is also reported in the Unix/Linux command line tool ‘top’ in the field ‘si’ as highlighted in the below image.
Fig: software interrupt ‘si’ time in top
How to resolve high software interrupt CPU time?
- Try rebooting the device.
- Make sure you are running on the latest OS version with all patches installed.
Use the tools like yCrash to identify what parts of your application code is causing the ‘software interrupt’ time to go high and fix it.