欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 【Bug】RuntimeError: Engine loop has died

【Bug】RuntimeError: Engine loop has died

2024/10/26 0:19:09 来源:https://blog.csdn.net/weixin_46398647/article/details/143172665  浏览:    关键词:【Bug】RuntimeError: Engine loop has died

目录

  • 报错前置条件
  • 报错内容
  • 解决方案

报错前置条件

使用vllm启动qwen2.5-32b-instruct模型后发生的报错
GPU是GeForce RTX 4090 Laptop GPU
系统是Windows 11
运行系统是WSL2-Ubuntu22.04

报错内容

INFO 10-22 22:29:31 engine.py:290] Added request chat-993cbe95e73d4a1db5d1e89e433f727a.
ERROR 10-22 22:29:32 client.py:250] RuntimeError('Engine loop has died')
ERROR 10-22 22:29:32 client.py:250] Traceback (most recent call last):
ERROR 10-22 22:29:32 client.py:250]   File "/home/ai/miniconda3/lib/python3.10/site-packages/vllm/engine/multiprocessing/client.py", line 150, in run_heartbeat_loop
ERROR 10-22 22:29:32 client.py:250]     await self._check_success(
ERROR 10-22 22:29:32 client.py:250]   File "/home/ai/miniconda3/lib/python3.10/site-packages/vllm/engine/multiprocessing/client.py", line 314, in _check_success
ERROR 10-22 22:29:32 client.py:250]     raise response
ERROR 10-22 22:29:32 client.py:250] RuntimeError: Engine loop has died
ERROR:    Exception in ASGI application
Traceback (most recent call last):File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/responses.py", line 259, in __call__await wrap(partial(self.listen_for_disconnect, receive))File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/responses.py", line 255, in wrapawait func()File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/responses.py", line 232, in listen_for_disconnectmessage = await receive()File "/home/ai/miniconda3/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 555, in receiveawait self.message_event.wait()File "/home/ai/miniconda3/lib/python3.10/asyncio/locks.py", line 214, in waitawait fut
asyncio.exceptions.CancelledError: Cancelled by cancel scope 7f385017b9d0During handling of the above exception, another exception occurred:Traceback (most recent call last):File "/home/ai/miniconda3/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 401, in run_asgiresult = await app(  # type: ignore[func-returns-value]File "/home/ai/miniconda3/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 60, in __call__return await self.app(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/fastapi/applications.py", line 1054, in __call__await super().__call__(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/applications.py", line 113, in __call__await self.middleware_stack(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/middleware/errors.py", line 187, in __call__raise excFile "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/middleware/errors.py", line 165, in __call__await self.app(scope, receive, _send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/middleware/cors.py", line 85, in __call__await self.app(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 62, in __call__await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/_exception_handler.py", line 62, in wrapped_appraise excFile "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/_exception_handler.py", line 51, in wrapped_appawait app(scope, receive, sender)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/routing.py", line 715, in __call__await self.middleware_stack(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/routing.py", line 735, in appawait route.handle(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/routing.py", line 288, in handleawait self.app(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/routing.py", line 76, in appawait wrap_app_handling_exceptions(app, request)(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/_exception_handler.py", line 62, in wrapped_appraise excFile "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/_exception_handler.py", line 51, in wrapped_appawait app(scope, receive, sender)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/routing.py", line 74, in appawait response(scope, receive, send)File "/home/ai/miniconda3/lib/python3.10/site-packages/starlette/responses.py", line 252, in __call__async with anyio.create_task_group() as task_group:File "/home/ai/miniconda3/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 763, in __aexit__raise BaseExceptionGroup(
exceptiongroup.ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)

解决方案

判断是内存不足导致

d$ free -htotal        used        free      shared  buff/cache   available
Mem:            15Gi       6.9Gi       8.2Gi        80Mi       435Mi       8.2Gi
Swap:          4.0Gi       4.0Gi       0.0Ki

从输出可以看到,系统总内存为 15GB,目前使用了约 6.9GB,剩余约 8.2GB 可用
交换空间(Swap)总共为 4GB,目前已全部使用,且没有可用的交换空间。
如果交换空间不足,会严重影响系统性能
要将交换空间设置为与你的物理内存相同的大小(15GB),可以按照以下步骤操作:

  1. 创建一个新的交换文件

    sudo fallocate -l 15G /swapfile
    
  2. 设置正确的权限

    sudo chmod 600 /swapfile
    
  3. 将文件设置为交换空间

    sudo mkswap /swapfile
    
  4. 启用交换文件

    sudo swapon /swapfile
    
  5. 确认交换空间已启用

    free -h
    
  6. 要使更改永久生效,请编辑 /etc/fstab 文件,添加以下行:

    sudo vim /etc/fstab
    /swapfile swap swap defaults 0 0
    :wq
    

这样,就能将交换空间设置为 15GB,性能完全发挥
如果/etc/fstab编辑后不起作用,可以将前面5个步骤的命令写入~/.bashrc

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com