Bug #10680
closedImprove interface caching when we have many interfaces
100%
Description
In interfaces.inc there's a caching system to avoid too many calls to pfSense_interface_listget().
This cache is invalidated a lot, also many times where we don't need to. It is for example invalidated several times for each VLAN during boot, which leads to slow boot times when we have more than a few hundred VLANs.
The list of interfaces can only change when we create or destroy interfaces. Therefore a rewrite of the cache-system to only invalidate on create/destroy, along with deferring invalidation to outside of loops (eg. we loop through each VLAN twice during boot), will drastically reduce boot times.
I will send a pull request soon to implement the changes.
Along with issue #10589, this change will improve boot times from timing out (max PHP execution time) to booting in a few minutes for 1000 or 1500 VLANs.
This is the case for 2.4.5 and 2.4.5-p1. I believe its also the case for 2.5.0.
Related issues
Updated by Jonas Christoffersen over 4 years ago
Link to GitHub pull request: https://github.com/pfsense/pfsense/pull/4364
Updated by Jim Pingle over 4 years ago
- Status changed from New to Pull Request Review
Updated by Renato Botelho almost 4 years ago
- Assignee set to Renato Botelho
- Target version set to 2.5.0
Updated by Jonas Christoffersen almost 4 years ago
- Status changed from Pull Request Review to Feedback
- % Done changed from 0 to 100
Applied in changeset 7d8131393dbd7aca507cddade443af41a27fec80.
Updated by Anonymous almost 4 years ago
- Assignee changed from Renato Botelho to Jonas Christoffersen
Please confirm
Updated by Max Leighton over 3 years ago
- Status changed from Feedback to Resolved
I was able to test this in 2.4.5p1 and 2.5. Boot time and GUI navigation speeds with 400 VLANs are significantly increased after this change. I'll mark the ticket resolved.
Updated by Viktor Gurov over 2 years ago
- Related to Regression #12999: Duplicate wireless interfaces are created at boot added