.net - 如何提高我的 webAPI 性能以及如何管理图像处理 API 中的 CPU 使用率?
问题描述
我创建了 MVC .Net API,通过 Imagemagick 动态生成图像。如果我一次收到 500 个访问图像的请求,那么我的 API 开始工作非常缓慢,我的 CPU 使用率突然上升到 100%。
您能否建议我如何管理 CPU 负载并提高我的 API 性能?
我的配置
- 8核CPU
- 2TB硬盘
- 128 GB 内存
请帮我。
解决方案
500 个同时运行的 imagemagick 进程几乎会杀死任何服务器。我会做一些实验来确定单个任务的典型内存使用情况,计算有多少可以舒适地放入你的 128gb 内存中,然后限制你的线程池以保持在这个范围内。
您还可以考虑其他图像处理包。这取决于任务,但net-vips可以比 imagemagick 快 8 倍,并且需要的内存少 10 倍。
推荐阅读
- mysql - 在 mysql 表中存储大量行(可能超过十亿)对于搜索引擎有什么影响?
- javascript - 如何在页面加载和自动点击时获取警报消息内容
- ios - 应用程序在模拟器中运行良好,但在手机上无法正常运行
- python - PyCharm 未检测到 anaconda3 环境
- android - 纹理视图放大区域截图
- python - NoReverseMatch at /post/1/log/ Reverse for 'log-create' with keyword arguments '{'post_id': ''}' not found
- c - 拆分单词后如何计算字符串中的字符?
- mysql - 如何优化此查询以防止超时
- java - 需要帮助将链接列表实现到 TableView javaFX 并将它们保存到文件中
- java - 在工作人员中使用 Livedata 观察者