Details
-
Improvement
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.7.0
-
None
-
Reviewed
Description
Based on the profiling, The bottleneck in PublicLocalizer#addResource is getInitializedLocalDirs. getInitializedLocalDirs call checkLocalDir.
checkLocalDir is very slow which takes about 10+ ms.
The total delay will be approximately number of local dirs * 10+ ms.
This delay will be added for each public resource localization.
Because PublicLocalizer#addResource is slow, the thread pool can't be fully utilized. Instead of doing public resource localization in parallel(multithreading), public resource localization is serialized most of the time.
And also PublicLocalizer#addResource is running in Dispatcher thread,
So the Dispatcher thread will be blocked by PublicLocalizer#addResource for long time.
Attachments
Attachments
Issue Links
- is related to
-
YARN-3549 use JNI-based FileStatus implementation from io.nativeio.NativeIO.POSIX#getFstat instead of shell-based implementation from RawLocalFileSystem in checkLocalDir.
- Resolved
- relates to
-
YARN-3496 Add a configuration to disable/enable storing localization state in NMLeveldbStateStore
- Resolved