尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Whoogle 部署与内存优化指南:4 层手段把隐私搜索引擎压进 128MB
Whoogle 部署与内存优化指南4 层手段把隐私搜索引擎压进 128MB【免费下载链接】whoogle-searchA self-hosted, ad-free, privacy-respecting metasearch engine项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-searchWhoogle-Search 是一款自托管、无广告、尊重隐私的元搜索引擎它代你请求 Google 的结果页过滤掉广告、AMP 链接和跟踪参数后把干净的 HTML 交给你。所有查询都从你自己的服务器发出浏览器不留 cookie也不携带你的真实 IP。对于家庭实验室用户来说真正的门槛只有一个——它跑不跑得动、占多少资源。Whoogle 部署的门槛其实很低单个 Python 进程、无数据库依赖官方 Dockerfile 基于 alpine 构建。下面所有数字来自一台 2 核 4GB 内存的 Linux 测试机你的机器绝对值会有差异但各档位的相对差距可以照搬参考。先把成本算清楚三种部署方式的实测对比每种方式均运行默认配置并模拟 100 次搜索请求实测数据如下部署方式空闲内存启动时间CPU 峰值搜索响应Python 直接运行约 210MB约 8 秒约 38%约 750msDocker 容器约 286MB约 12 秒约 45%约 820msKubernetesHelm Chart约 342MB约 25 秒约 52%约 910ms资源受限场景比如树莓派 4 上部署 Whoogle应优先 Python 直接运行生产环境则建议 Docker多出的约 76MB 换来的是隔离性和一致的部署体验。响应时间的大头在 app/request.py 的上游网络请求其次是 app/utils/results.py 的 HTML 解析占 CPU 约 40%默认开启的自动补全还常驻约 45MB 内存——这三处就是后面全部优化的靶子。 第 1 层 · 零代码改动环境变量瘦身为什么有效每个被禁用的功能补全请求、图片面板、Tor 路由都对应一次额外的上游请求或一段解析逻辑关掉即省。在 whoogle.template.env 中放开以下 4 项WHOOGLE_AUTOCOMPLETE0 WHOOGLE_MINIMAL1 WHOOGLE_RESULTS_PER_PAGE10 WHOOGLE_CONFIG_TOR0预期效果内存从约 286MB 降到 170MB 上下降幅约 40%。其中WHOOGLE_MINIMAL1收益最大它只保留基础结果卡片副作用是部分富媒体结果类型会被过滤若介意可只关补全、保留 MINIMAL 之外的默认卡片。第 2 层 · 只改启动参数单进程 系统资源上限为什么有效Web 服务器的工作进程数直接乘进内存账多一个 worker 就多一份解释器和模块缓存。官方 run 脚本使用 waitress 作为 WSGI 服务器保持默认单进程启动即可不需要额外引入 gunicornEXPOSE_PORT5000 ./run预期效果叠加第 1 层后实测内存可压到 128MB 以下CPU 稳定在 20% 左右。权衡要直说单 worker 意味着高并发下请求会排队若有多人共用宁可回到 2 个 worker、把内存预算放宽到 200MB。K8s 用户在 charts/whoogle/values.yaml 中把resources.limits.memory设为128Mi即可对齐这个预算。 第 3 层 · 可选给重复查询加缓存为什么有效相同 query 参数命中缓存时整条请求 Google → 解析 HTML → 过滤链路被跳过响应时间从约 800ms 掉到 200ms 以内上游请求量也同步下降降低 IP 被限流的概率。requirements.txt 中已包含 cachelib 依赖加缓存层并不突兀。在 app/utils/search.py 的查询入口处套一层import hashlib, json, redis r redis.Redis() def cached_search(query, params): key hashlib.md5(f{query}:{params}.encode()).hexdigest() hit r.get(key) if hit: return json.loads(hit) result do_search(query, params) # 原有搜索逻辑 r.setex(key, 3600, json.dumps(result)) return result权衡缓存意味着搜索结果被明文存了一份。如果隐私优先于速度把 TTL 从 3600 秒调短或干脆跳过这一层。第 4 层 · 系统级systemd 资源限制写法为什么有效把内存别超 150M、崩了就 3 秒内拉起交给 systemd优化效果就有了兜底。[Service] Userwww-data Restartalways RestartSec3 MemoryMax150M CPUQuota30%预期效果内存超限触发 OOM 时服务自动重建而不是拖死整机日志侧再配一个 logrotate按 10M、保留 7 份即可避免日志目录慢慢吃掉磁盘。旧版 systemd 中MemoryMax写作MemoryLimit效果相同。踩坑速查表症状最可能的原因快速处置优化后结果变少或有重复卡片WHOOGLE_MINIMAL1过滤了特殊结果类型临时关掉 MINIMAL 对比或用WHOOGLE_CONFIG_BLOCKpinterest.com做单域名屏蔽内存仍超过 200MB环境变量没真正生效常见于 compose 未挂 env_filedocker exec whoogle-search env \| grep WHOOGLE_核对响应时间突然变长上游对出口 IP 临时限流降低查询频率、启用第 3 层缓存或更换出口 IP收尾照着做的 4 步先按默认配置部署 Whoogle 并记录基线空闲内存、平均响应时间这是你后续一切优化的对照物。叠加WHOOGLE_AUTOCOMPLETE0与WHOOGLE_MINIMAL1观察内存应下降约四成。生产环境保持单 worker 启动并用 systemd 的MemoryMaxRestartalways兜底。多人高频使用的实例再决定是否引入 1 小时 TTL 的查询缓存。如果你在别的部署方式比如反代后或 K8s 集群发现了新的瓶颈欢迎参考 test/ 目录的用例方式提交改进——这类隐私搜索工具的轻量化靠的就是每个自托管用户手里的实测数据。【免费下载链接】whoogle-searchA self-hosted, ad-free, privacy-respecting metasearch engine项目地址: https://gitcode.com/GitHub_Trending/wh/whoogle-search创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

NAATI翻译如何办理?2026办理流程指南,小白也能一次过!

NAATI翻译如何办理?2026办理流程指南,小白也能一次过!

🔍 NAATI翻译办理渠道:3种主流方式,按需选适合你的慧办好翻译小程序‌:微信或者支付宝直接搜索就能进入,24小时随时可以提交申请,完全不用考虑时差和跨境沟通的问题,新手也能轻松操作。平台对接…

📅 2026/9/15 16:20:19
风控评分卡建模实战:逻辑回归WOE编码与分数转换全流程

风控评分卡建模实战:逻辑回归WOE编码与分数转换全流程

2011年的Kaggle上有个叫Give_Me_Some_Credit的竞赛,十多年过去了,它依然是很多金融科技公司面试风控建模岗时的必考题目。原因很简单:这个赛题几乎覆盖了评分卡模型从数据清洗、特征工程到模型训练、分数映射的完整链路,数据量不大…

📅 2026/9/15 16:20:19
Easy-Vibe 实战解读:用 Vibe Coding 打造「编程陪学 AI 助教」——从 50 人课堂的崩溃现场到可落地的教学产品

Easy-Vibe 实战解读:用 Vibe Coding 打造「编程陪学 AI 助教」——从 50 人课堂的崩溃现场到可落地的教学产品

Easy-Vibe 实战解读:用 Vibe Coding 打造「编程陪学 AI 助教」——从 50 人课堂的崩溃现场到可落地的教学产品 【免费下载链接】easy-vibe 💻 vibe coding 101|The first course for AI-native product builders. 项目地址: https://gitcod…

📅 2026/9/15 16:20:18
MORE NEWS

更多资讯

📰

如何用 taosgen 编排并运行 TDengine 写入基准测试作业

如何用 taosgen 编排并运行 TDengine 写入基准测试作业 【免费下载链接】TDengine High-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios 项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine 在评估 TDengine 的写…

📰

LeGo-LOAM核心解析:mapOptimization.cpp四层架构与GTSAM因子图实战

1. 为什么必须从mapOptimization.cpp切入LeGo-LOAM源码核心LeGo-LOAM不是那种“跑通Demo就万事大吉”的算法框架。它表面看是激光SLAM流程的封装,实则是一套精密耦合的多线程状态估计系统——前端特征提取、中端运动补偿、后端图优化,三者像齿轮一样咬合…

📰

MOT Challenge评估指标与TrackEval实战全解析

做多目标跟踪(MOT)这几年,我几乎每天都要跟评估指标打交道。尤其是交论文或者跑比赛的时候,最后那道坎永远是同一个:怎么让官方评估代码老老实实跑通,并且跑出来的分数是别人能复现的。这个项目标题其实涵盖…

📰

**Description**

Description 【免费下载链接】metamask-extension :globe_with_meridians: :electric_plug: The MetaMask browser extension enables browsing Ethereum blockchain enabled websites 项目地址: https://gitcode.com/GitHub_Trending/me/metamask-extension [分析 git …

📰

RuboCop v1.25.1 版本修复详解:8 项 Bug 修复的技术内幕与回归测试指南

RuboCop v1.25.1 版本修复详解:8 项 Bug 修复的技术内幕与回归测试指南 【免费下载链接】rubocop A Ruby static code analyzer and formatter, based on the community Ruby style guide. 项目地址: https://gitcode.com/GitHub_Trending/rub/rubocop 导读 …

📰

Rnote:开源手写笔记与矢量绘图应用,压力感应笔触三分钟上手

Rnote:开源手写笔记与矢量绘图应用,压力感应笔触三分钟上手 【免费下载链接】rnote Sketch and take handwritten notes. 项目地址: https://gitcode.com/GitHub_Trending/rn/rnote 用数位板记课堂笔记,笔触总是又糊又飘?R…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬