指南

如何降低应用的托管成本

要降低托管成本,首先要弄清楚实际运行的是什么、为什么运行,然后在无人使用时让一切进入休眠。在支持缩容至零的主机上,闲置的应用和休眠的数据库成本很低,因此最大的节省通常来自于消除那些让它们保持唤醒的因素——最常见的是每隔几秒检查一次数据库的代码——其次是减少带宽,并删除无人使用的应用。

大多数小型应用并不是流量问题,而是“总有东西在运行”的问题。本指南说明如何找到并解决它,并提供可以交给AI应用构建器的提示词。

你实际在为什么付费

小型应用的托管账单来自几个方面。了解哪一项占比最大,就知道应该从哪里入手。

成本驱动因素常见解决方法
计算(服务器)机器的规格以及运行的小时数让它休眠;选择合适的规格
数据库其大小以及保持唤醒的时长停止持续查询,使其能够休眠
带宽访客下载的数据量压缩图片,缓存文件
存储你保存的文件和数据删除不需要的旧上传文件、日志和备份
第三方API调用AI模型、地图、邮件、短信等缓存结果,设置调用限制

许多现代主机,包括Mythex,都支持缩容至零:当没有人使用应用时,服务器会停止,计算费用为零,并在下一次访问时唤醒。这使问题从“我的服务器有多大?”变成了“我的服务器为什么一直醒着?”

第1步:查看钱花在了哪里

在改动任何内容之前,打开你的主机用量页面,找出:

  • 哪个项目花费最多。通常是一个应用占了大部分账单。
  • 哪一类费用——计算、数据库、带宽还是存储。
  • 什么时候在消耗。深夜没有用户时仍然保持平稳的曲线,是有东西让应用保持唤醒的线索。

在Mythex上,用量详情会显示过去30天的数据,分为构建(AI智能体)和运行(托管、带宽、数据库和文件存储),并按项目细分。

第2步:让闲置的应用和数据库休眠

对于大多数小型应用来说,这是最关键的手段。一个在闲置时休眠、在下一次请求时唤醒的数据库,在安静时段几乎不产生费用。而一个每隔几秒就被查询一次的数据库永远不会空闲,所以你全天都在为它付费。

Mythex的托管限制详细说明了已发布应用的运作方式:休眠的应用不产生计算费用,数据库以最小规格启动,忙碌时增长,空闲5分钟后休眠,并按其大小乘以唤醒时长计费。因此,一个每隔几分钟(无论白天还是夜里)就查询一次数据库的应用,计费就如同一直处于繁忙状态,而没有后台“杂音”的同一应用则几乎没有费用。

常见的让应用保持唤醒的因素:

  • 轮询。 页面每隔2–5秒询问服务器“有没有新内容?”。只要有一台笔记本电脑开着这个标签页,数据库就永远不会休眠。
  • 自动刷新的仪表板,即使没有人在看,也会按计时器重新加载数据。
  • 运行时监控,每分钟ping一次应用。
  • 服务器代码中的后台循环——例如一个永远清理或同步数据的setInterval。
  • 有人为了避免首次访问缓慢而添加的定时“保活”请求——它们的原理是阻止休眠,而这恰恰是费用的来源。

让AI帮你找出这些内容:

在代码中查找所有通过计时器运行或反复查询数据库的内容:轮询、setInterval、自动刷新、后台循环。列出每一项,说明其运行频率,以及在没有人打开页面时是否仍会运行。暂时不要做任何更改。

然后逐一修复:

仪表板每3秒轮询一次/api/orders。请改为仅在浏览器标签页可见时刷新,并将间隔从3秒改为60秒。添加一个手动刷新按钮。

如果你的应用确实需要实时更新(例如聊天或实时比分),可以询问它能否仅在有变化时推送更新,而不是不断地请求。对于许多应用来说,“用户回到标签页时刷新”就已经足够了。

第3步:选择合适的服务器规格

更大的机器每小时的费用更高。许多AI构建的应用从默认规格开始就足够了;问题往往出在,为了修复实际上是慢查询导致的速度问题,而要求“更多性能”。

  • 保持能够满足你的流量且不出错的最小规格。
  • 如果遇到内存崩溃,首先询问AI应用是否一次加载了过多数据(例如整张表,而不是一页结果)。
  • 只有在测量到需要它们的流量时,才增加机器。

在Mythex上,机器规格在发布时根据应用的需求选定,只有在流量较大时才会启动额外的机器,流量下降后又会恢复休眠。费用随规格而变化,因此如果你认为规格过大,可以在聊天中要求更小的规格。

第4步:减少带宽

带宽是访客下载的数据量。图片通常是其中最大的部分。

  • 压缩图片,并使用WebP或AVIF等现代格式。
  • 将图片调整为实际显示的尺寸。一张4000像素的照片以400像素的缩略图显示,会浪费掉下载量的大部分。
  • 对首屏以下的图片进行懒加载。
  • 缓存静态文件(脚本、样式、图片),让回访的访客无需重新下载。参阅什么是缓存。
  • 不要让应用在每次页面浏览时都提供大文件。

检查应用中的每一张图片。将它们调整为显示时的最大尺寸,转换为WebP格式,并对首屏以下的内容进行懒加载。告诉我优化前后的总大小。

更快的页面和更低的带宽通常是同时实现的——参阅如何让你的网站更快。

第5步:清理无人使用的内容

  • 取消发布旧应用——测试部署、已结束的实验、去年的活动网站。
  • 删除旧的上传文件、不需要的日志和导出文件。
  • 删除不再使用的共享预览链接。 在Mythex上,打开预览链接会唤醒项目并消耗你的积分,因此一个被遗忘、仍有人不断打开的链接依然会产生费用。
  • 移除未使用的服务——应用不再调用的API服务器或工作进程。

第6步:考虑使用静态网站

如果你的网站没有登录功能、没有保存的用户数据,也没有服务器端逻辑——例如营销网站、作品集或菜单——它可以是一个静态网站:以CDN提供的纯文件形式运行。不需要持续运行服务器或数据库。在Mythex上,静态网站在闲置时不消耗积分。

这个网站没有登录功能,也不保存数据。能否将它重建为无服务器的静态网站?我们会失去什么?

第7步:关注付费的API调用

对于调用AI模型、地图或短信的应用,第三方账单可能远超托管费用。

  • 对于每次调用都要付费的功能,要求用户登录。
  • 添加每位用户的使用限制(参阅什么是速率限制)。
  • 缓存不会变化的结果,例如对同一地址重复进行地理编码。
  • 在每个服务商处设置消费上限或提醒。

常见误区

  • 凭猜测而不是测量。 先查看用量明细;最昂贵的部分往往并非你所预料的。
  • 为了修复缓慢而购买更大的服务器。 缺失的数据库索引或加载过多的数据,通常才是真正的原因。
  • 对所有内容进行轮询。 每一个每隔几秒触发的计时器,都是数据库保持唤醒的一个理由。
  • 通过ping应用来让它“保持温热”。 这会抵消缩容至零带来的节省。应接受首次访问时的短暂唤醒,或者有意识地为常驻运行付费。
  • 忘记旧的部署。 闲置的应用连同其数据库和后台任务会悄悄地累积费用。
  • 未压缩的图片。 通常是小型网站上最大的带宽成本。

检查清单

  • 我知道哪个项目、哪一类费用(计算、数据库、带宽、存储)花费最多。
  • 在没有人查看时,没有任何东西每隔几秒轮询数据库。
  • 仪表板以合理的间隔刷新,或仅在标签页可见时刷新。
  • 没有运行时监控或后台循环无故让应用保持唤醒。
  • 服务器是能够正常运行的最小规格。
  • 图片已调整尺寸、压缩并懒加载;静态文件已缓存。
  • 旧应用已取消发布,旧文件已删除,不再使用的预览链接已移除。
  • 没有数据或登录功能的网站已设为静态网站。
  • 付费API已设置登录要求、每位用户的限制以及服务商的消费提醒。

在Mythex上降低成本

Mythex对构建和托管使用同一个积分余额,因此托管方面节省的积分,可以留给构建使用。以下是一些Mythex特有的要点:

  • 已发布的应用及其数据库在闲置时休眠,并在下一次访问时唤醒。数据库在空闲5分钟后休眠,因此消除持续轮询通常是最大的收益。
  • Pro套餐的托管、数据库、带宽、文件存储和预览沙盒费率为免费套餐的一半;AI费用在两个套餐中相同。参阅积分。
  • 在积分余额偏低、可能导致已发布应用暂停之前,你会收到一封邮件提醒;暂停的应用会保留其数据库和文件。

关于运行成本的更多信息,请参阅构建一个应用需要多少钱和什么是网页托管。

常见问题

我的应用用户很少,为什么托管账单却很高?

通常是有什么东西一直让它保持唤醒。例如,每隔几秒就查询一次数据库的代码,每分钟ping一次的运行时监控,或者被遗忘的后台循环,即使没有访客,也会让服务器和数据库全天候运行。

休眠的应用还会产生费用吗?

在支持缩容至零的主机上,休眠的应用几乎不产生计算费用;通常你仍需为存储的数据付费。在Mythex上,休眠的已发布应用不产生计算费用,其数据库在空闲5分钟后休眠,并且只按其唤醒的时长计费。

轮询会增加托管成本吗?

是的。每隔几秒轮询一次,意味着数据库永远不会有空闲时段,因此无法休眠。应降低轮询频率,仅在有人查看页面时才轮询,或者改用推送方式更新,而不是主动请求。

静态网站比Web应用更便宜吗?

通常是的。静态网站只是从CDN提供的文件,无需持续运行服务器或数据库。如果你的网站没有登录功能,也不保存数据,将其构建为静态网站是最大的节省途径之一。

Mythex · Pricing · 用 AI 构建任何东西 · 网站和应用模板 · Mythex 对比 · AI 应用构建术语表 · 免费的 AI 应用构建工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 繁體中文(香港) 繁體中文(台灣)