docker容器中查看线程上下文切换次数为0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker容器中查看线程上下文切换次数为0相关的知识,希望对你有一定的参考价值。
参考技术A 要在Docker容器中查看线程上下文切换次数,可以使用以下命令:```
pidstat -w
```
这条命令会显示有关CPU使用情况的各种统计数据, 包括线程上下文切换次数,其中-w选项表示显示上下文切换次数。
如果您没有安装pidstat,可以使用以下命令来安装:
```
apt-get update && apt-get install sysstat
```
这个命令将使用apt-get工具安装sysstat包,该包包含pidstat命令。
请注意,在容器中使用pidstat时,它将显示该容器中正在运行的所有进程的统计信息,而不仅仅是当前正在活动的进程。如果你只想看到单个进程的上下文切换次数,可以使用以下命令:
```
pidstat -w -p [PID]
```
PID指的是你想要查看的进程的ID。这应该只显示指定进程的上下文切换次数。
在 Windows 版本 10.0.18363 中无法切换到 Docker 中的 Windows 容器
【中文标题】在 Windows 版本 10.0.18363 中无法切换到 Docker 中的 Windows 容器【英文标题】:In Windows Version 10.0.18363 Cannot Switch to Windows container in Docker 【发布时间】:2021-10-29 12:00:43 【问题描述】:上下文:
-Windows 版本:10.0.18363 Build 18263 -Docker 信息:
Cloud integration: 1.0.17
Version: 20.10.8
API version: 1.41
Go version: go1.16.6
Git commit: 3967b7d
Built: Fri Jul 30 19:58:50 2021
OS/Arch: windows/amd64
Context: default
Experimental: true
-计算机:Surface Laptop 3 -Docker 设置:Docker Settings Screenshot
问题:
在过去的四天里,我一直无法在我的计算机上切换到 windows 容器,也无法运行 windows 容器。每次我尝试切换到 Windows 容器时,都会出现以下错误:
System.ServiceProcess.TimeoutException:
Time out has expired and the operation has not been completed.
at System.ServiceProcess.ServiceController.WaitForStatus(ServiceControllerStatus desiredStatus, TimeSpan timeout)
at Docker.Backend.Processes.WindowsDockerDaemon.TryToStartService(Settings settings, String args, Dictionary`2 env) in C:\workspaces\master-merge\src\github.com\docker\pinata\win\src\Docker.Backend\Processes\WindowsDockerDaemon.cs:line 208
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_1.<GetExecutor>b__0(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()
然后我得到“重置为出厂默认设置”选项,当我单击它时,它会挂起很长时间,而 docker 尝试再次启动并最终崩溃。我试过:重启我的电脑,重启Docker,卸载并重新安装Docker,删除daemon.json
文件,降级我的windows版本,然后再次升级。我不知道如何从这里尝试让我的 Windows 容器在我的机器上运行。
【问题讨论】:
请提供足够的代码,以便其他人更好地理解或重现问题。 没有代码,尝试运行 docker 容器时出现问题。 【参考方案1】:在link 之后,我刚刚进入 c:/ProgramData/Docker 并删除了 panic.log 文件的只读权限。然后我重新启动了 Docker,它工作了。
【讨论】:
以上是关于docker容器中查看线程上下文切换次数为0的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 版本 10.0.18363 中无法切换到 Docker 中的 Windows 容器