বিশেষত com.docker.hyperkit
100% সিপিইউ ব্যবহার করে আমি কীভাবে ম্যাকোজে ডকারের কারণটি সনাক্ত করব ?
ডকারের পরিসংখ্যান
ডকারের পরিসংখ্যান দেখায় যে চলমান সমস্ত পাত্রে কম সিপিইউ, মেমরি, নেট আইও এবং ব্লক আইও রয়েছে।
iosnoop
iosnoop দেখায় যে com.docker.hyperkit
ফাইলে প্রতি সেকেন্ডে 500KB হয়ে প্রতি সেকেন্ডে প্রায় 50 টি লেখা হয় Docker.qcow2
। ডকার.ক্কোও 2 অনুসারে কী? , Docker.qcow2
একটি স্পর্শযুক্ত ফাইল যা সমস্ত ডকারের ধারকগুলির জন্য অবিরাম সঞ্চয়স্থান।
আমার ক্ষেত্রে ফাইলটি খুব কম নয়। শারীরিক আকার লজিক্যাল আকারের সাথে মেলে।
dtrace (dtruss)
dtruss sudo dtruss -p $DOCKER_PID
একটি বিশাল সংখ্যক psynch_cvsignal
এবং psynch_cvwait
কল দেখায় ।
psynch_cvsignal(0x7F9946002408, 0x4EA701004EA70200, 0x4EA70100) = 257 0
psynch_mutexdrop(0x7F9946002318, 0x5554700, 0x5554700) = 0 0
psynch_mutexwait(0x7F9946002318, 0x5554702, 0x5554600) = 89474819 0
psynch_cvsignal(0x10BF7B470, 0x4C8095004C809600, 0x4C809300) = 257 0
psynch_cvwait(0x10BF7B470, 0x4C8095014C809600, 0x4C809300) = 0 0
psynch_cvwait(0x10BF7B470, 0x4C8096014C809700, 0x4C809600) = -1 Err#316
psynch_cvsignal(0x7F9946002408, 0x4EA702004EA70300, 0x4EA70200) = 257 0
psynch_cvwait(0x7F9946002408, 0x4EA702014EA70300, 0x4EA70200) = 0 0
psynch_cvsignal(0x10BF7B470, 0x4C8097004C809800, 0x4C809600) = 257 0
psynch_cvwait(0x10BF7B470, 0x4C8097014C809800, 0x4C809600) = 0 0
psynch_cvwait(0x10BF7B470, 0x4C8098014C809900, 0x4C809800) = -1 Err#316
আপডেট: top
ডকার হোস্টে
Https://stackoverflow.com/a/58293240/30900 থেকে :
docker run -it --rm --pid host busybox top
ডকার এম্বেড থাকা হোস্টের সিপিইউ ব্যবহারটি ~ 3%। আমার ম্যাকবুকের সিপিইউ ব্যবহার ছিল 100%। সুতরাং, ডকার এম্বেড থাকা হোস্ট সিপিইউ ব্যবহারের স্পাইক সৃষ্টি করে না।
আপডেট: সর্বাধিক সাধারণ স্ট্যাক ট্রেসগুলির ডিট্রেস স্ক্রিপ্টগুলি চলছে
নীচের উত্তরে dtrace স্ক্রিপ্ট থেকে ট্রেস ট্রেস: https://stackoverflow.com/a/58293035/30900 ।
এই কার্নেল স্ট্যাকের চিহ্নগুলি নিস্পৃহ দেখায়।
AppleIntelLpssGspi`AppleIntelLpssGspi::regRead(unsigned int)+0x1f
AppleIntelLpssGspi`AppleIntelLpssGspi::transferMmioDuplexMulti(void*, void*, unsigned long long, unsigned int)+0x91
AppleIntelLpssSpiController`AppleIntelLpssSpiController::transferDataMmioDuplexMulti(void*, void*, unsigned int, unsigned int)+0xb2
AppleIntelLpssSpiController`AppleIntelLpssSpiController::_transferDataSubr(AppleInfoLpssSpiControllerTransferDataRequest*)+0x5bc
AppleIntelLpssSpiController`AppleIntelLpssSpiController::_transferData(AppleInfoLpssSpiControllerTransferDataRequest*)+0x24f
kernel`IOCommandGate::runAction(int (*)(OSObject*, void*, void*, void*, void*), void*, void*, void*, void*)+0x138
AppleIntelLpssSpiController`AppleIntelLpssSpiDevice::transferData(IOMemoryDescriptor*, void*, unsigned long long, unsigned long long, IOMemoryDescriptor*, void*, unsigned long long, unsigned long long, unsigned int, AppleIntelSPICompletion*)+0x151
AppleHSSPISupport`AppleHSSPIController::transferData(IOMemoryDescriptor*, void*, unsigned long long, unsigned long long, IOMemoryDescriptor*, void*, unsigned long long, unsigned long long, unsigned int, AppleIntelSPICompletion*)+0xcc
AppleHSSPISupport`AppleHSSPIController::doSPITransfer(bool, AppleHSSPITransferRetryReason*)+0x97
AppleHSSPISupport`AppleHSSPIController::InterruptOccurred(IOInterruptEventSource*, int)+0xf8
kernel`IOInterruptEventSource::checkForWork()+0x13c
kernel`IOWorkLoop::runEventSources()+0x1e2
kernel`IOWorkLoop::threadMain()+0x2c
kernel`call_continuation+0x2e
53
kernel`waitq_wakeup64_thread+0xa7
pthread`__psynch_cvsignal+0x495
pthread`_psynch_cvsignal+0x28
kernel`psynch_cvsignal+0x38
kernel`unix_syscall64+0x27d
kernel`hndl_unix_scall64+0x16
60
kernel`hndl_mdep_scall64+0x4
113
kernel`ml_set_interrupts_enabled+0x19
524
kernel`ml_set_interrupts_enabled+0x19
kernel`hndl_mdep_scall64+0x10
5890
kernel`machine_idle+0x2f8
kernel`call_continuation+0x2e
43395
17 সেকেন্ডের বেশি ব্যবহারকারীর স্পেসে সর্বাধিক সাধারণ স্ট্যাক ট্রেস স্পষ্টভাবে com.docker.hyperkit জড়িত। 1765 সেকেন্ডে 1365 স্ট্যাক ট্রেস করেছে যার মধ্যে com.docker.hyperkit
থ্রেড তৈরি হয়েছিল যা প্রতি সেকেন্ডে গড়ে 80 থ্রেড হয়।
com.docker.hyperkit`0x000000010cbd20db+0x19f9
com.docker.hyperkit`0x000000010cbdb98c+0x157
com.docker.hyperkit`0x000000010cbf6c2d+0x4bd
libsystem_pthread.dylib`_pthread_body+0x7e
libsystem_pthread.dylib`_pthread_start+0x42
libsystem_pthread.dylib`thread_start+0xd
19
Hypervisor`hv_vmx_vcpu_read_vmcs+0x1
com.docker.hyperkit`0x000000010cbd4c4f+0x2a
com.docker.hyperkit`0x000000010cbd20db+0x174a
com.docker.hyperkit`0x000000010cbdb98c+0x157
com.docker.hyperkit`0x000000010cbf6c2d+0x4bd
libsystem_pthread.dylib`_pthread_body+0x7e
libsystem_pthread.dylib`_pthread_start+0x42
libsystem_pthread.dylib`thread_start+0xd
22
Hypervisor`hv_vmx_vcpu_read_vmcs
com.docker.hyperkit`0x000000010cbdb98c+0x157
com.docker.hyperkit`0x000000010cbf6c2d+0x4bd
libsystem_pthread.dylib`_pthread_body+0x7e
libsystem_pthread.dylib`_pthread_start+0x42
libsystem_pthread.dylib`thread_start+0xd
34
com.docker.hyperkit`0x000000010cbd878d+0x36
com.docker.hyperkit`0x000000010cbd20db+0x42f
com.docker.hyperkit`0x000000010cbdb98c+0x157
com.docker.hyperkit`0x000000010cbf6c2d+0x4bd
libsystem_pthread.dylib`_pthread_body+0x7e
libsystem_pthread.dylib`_pthread_start+0x42
libsystem_pthread.dylib`thread_start+0xd
47
Hypervisor`hv_vcpu_run+0xd
com.docker.hyperkit`0x000000010cbd20db+0x6b6
com.docker.hyperkit`0x000000010cbdb98c+0x157
com.docker.hyperkit`0x000000010cbf6c2d+0x4bd
libsystem_pthread.dylib`_pthread_body+0x7e
libsystem_pthread.dylib`_pthread_start+0x42
libsystem_pthread.dylib`thread_start+0xd
135
সম্পর্কিত ব্যাপার
গিথুব - ডকার / ম্যাকের জন্য: com.docker.hyperkit 100% সিপিইউ ব্যবহার আবার ফিরে এসেছে # 3499 । একটি মন্তব্য এখানে বর্ণিত ভলিউম ক্যাচিং যুক্ত করার পরামর্শ দেয়: https://www.docker.com/blog/user-guided-caching-in-docker-for-mac/ । আমি এটি চেষ্টা করেছিলাম এবং সিপিইউ ব্যবহারে একটি ছোট ~ 10% হ্রাস পেয়েছি।