补充资料
你该知道的事
代理错误
有时,要求ERDDAP™将返回代理错误、 HTTP 502 坏网关错误或一些类似的错误。 这些错误被Apache或Tomcat抛出,不是ERDDAP™它本身。
- 如果每个请求都产生这些错误, 特别是当你第一次设置您ERDDAP™,那么它可能是一个代理或坏的网关错误, 解决方案可能是修复ERDDAP代理设置。 。 。 这一点也可能是:ERDDAP™突然开始为每一个请求抛出这些错误.
- 否则,"代理"错误通常实际上就是Apache或Tomcat抛出的超时错误. 即使它们发生得比较快 也是阿帕奇或汤姆卡特的反应ERDDAP™十分繁忙,内存有限,或受到其它资源的限制. 在这些情况下,见下文关于处理下列情况的建议:ERDDAP™慢慢反应。 。 。 。
长期请求 (> 30 个时间点) 从网格化的数据集中容易出现超时故障,这些故障经常作为代理错误出现,因为它需要相当长的时间才能实现ERDDAP™以打开所有数据文件。 若为ERDDAP™在请求期间,由于工作繁忙,问题更有可能发生。 如果数据集的文件被压缩,问题更有可能发生,尽管用户很难确定数据集的文件是否 被压缩. 解决办法是提出几个请求,每个请求的时间范围较小。 时间范围有多小? 我建议从小开始 (~30时间点?) ,则 (大约) 在请求失败前将时间范围翻倍, 然后返回一个加倍 。 那就做所有的请求 (每一段不同的时间) 需要获得所有数据。 一个ERDDAP™管理员可以通过增加Apache 超时设置。 。 。 。
监测
我们都希望我们的数据服务 找到他们的受众和被广泛使用, 但有时你ERDDAP™可能会被使用过多,造成问题,包括对所有请求的反应超慢。 我们避免问题的计划是:
- 监视器ERDDAP™通过状态.html网页。 。 。 。 它拥有大量有用的信息。 如果您看到大量请求正在出现,或者正在使用吨内存,或者数以吨计的失败请求,或者每个重载Datasets少校要花很长时间,或者看到任何事物被困在下方并缓慢响应的迹象,请查看ERDDAP因为日志.txt 文件以观其事.
简单地指出状态页的反应速度有多快也是有用的. 如果反应缓慢,这是一项重要指标:ERDDAP™忙着呢
- 监视器ERDDAP™通过每日报告电子邮件。
- 注意通过 基数Url /erddap/outOfDateDatasets.html基于可选的网页testOutOfDate全球属性。
外部监视器
上述方法如下:ERDDAP自我监控的方法 也可以制作或使用外部系 统来监视您ERDDAP。 。 。 。 一个计划就是Axiom 的计量工程。 。 。 这种外部系统有一些优点:
- 它们可以被定制以提供您想要的信息,以您想要的方式显示.
- 它们可以包括下列信息:ERDDAP™那个ERDDAP™无法轻易或完全访问(例如,CPU的使用,磁盘自由空间,ERDDAP™从用户角度来看,反应时间,ERDDAP™起床时间,
- 他们可以提供警报 (电子邮件、电话、短信) 当问题超过某个阈值时, 给管理员。
多个同时 请求
- 黑名单用户同时提出多个请求! 如果某些用户显然在重复和连续地同时提出不止一个请求,那么就将其IP地址添加到ERDDAP'是[<请求黑名单 >] (/docs/server-admin/datas# 请求黑名单) 在你身边datasets.xml文档。 有时请求都是来自一个IP地址. 有时它们来自多个IP地址,但很明显是同一个用户. 也可以将提出数吨无效请求或数吨心智低效请求的人列入黑名单.
然后,对于他们提出的每一项请求,ERDDAP™返回:
HTTP ERROR 403 - Access Forbidden --
Your IP address is on this ERDDAP's request blacklist.
Did you often submit more than one request at a time?
Did you often submit identical requests in a short period of time?
Did you submit a large number of invalid requests?
If you are ready to avoid these problems, please email \[ERDDAP™ administrator's email address\] to request to be taken off of the blacklist.
希望用户会看到这个消 息并联系你,找出如何解决问题并脱离黑名单. 有时,他们只是切换IP地址,再试一次.
这就像战争中进攻性和防御性武器之间的力量平衡。 在这里,防御武器 (ERDDAP) 具有固定容量,受CPU中芯数,磁盘访问带宽,网络带宽的限制. 但进攻性武器 (用户,特别是脚本) 具有无限容量:
- 单个请求从许多时间点获取数据可能会引起ERDDAP打开大量文件 (顺序或部分多线程) 。 。 。 在极端情况下,一个“简单”请求可以很容易地将所附RAID捆绑起来。ERDDAP™一分钟,有效阻止处理其他请求。
- 单项请求可能消耗大量内存 (虽然ERDDAP™以最小化处理大请求所需的内存) 。 。 。 。
- 平行 - 怎么样? 一个聪明的用户很容易通过生成大量线程来并行一个大任务,每个线程都会提交单独的请求 (大小) 。 。 。 这个行为受到计算机科学界的鼓励,作为处理大问题的有效方法. (在其他情况下,平行是有效的) 。 。 。 回到战争类比:用户可以提出基本上无限数量的同时请求,每个请求的费用基本上为零,但每个请求的费用都进入ERDDAP™能够很大,ERDDAP反应能力是有限的。 显然,ERDDAP™将会输掉这场战斗 除非ERDDAP™管理员黑名单用户同时提出多个请求, 不公平地排挤其他用户 。
- 多个脚本 - 现在想想,当有好几个聪明的用户 每一个运行平行的脚本时,会发生什么。 如果一个用户能生成如此众多的请求,以至于其他用户挤出,那么多个这样的用户就能生成如此众多的请求,以至于ERDDAP™变得不堪重负 似乎没有反应 它实际上是一个DDOS攻击再说一遍 唯一的辩护人ERDDAP™黑名单用户同时提出多个请求,不公平地排挤其他用户。
- 膨胀的期望 在这个大型技术公司的世界 里 (亚马逊 谷歌 Facebook...) ,用户开始期望供应商基本上拥有无限的能力. 由于这些公司是赚钱经营,用户越多,就越需要增加收入来扩大信息技术基础设施. 这样他们就可以买得起一个庞大的IT基础设施来处理请求. 他们巧妙地限制用户的每项请求的数量和成本,限制用户可以提出的各类请求,使任何单一请求都无法负担,从没有任何理由 (或一种方式) 用于用户同时提出多个请求。 因此,这些巨大的技术公司拥有的用户可能远远多于ERDDAP™,但它们拥有大量更多的资源和巧妙的方法来限制每个用户的请求. 对大型IT公司来说,这是可以控制的 (他们发财了!) 但不是为了ERDDAP™设施。 再说一遍 唯一的辩护人ERDDAP™黑名单用户同时提出多个请求,不公平地排挤其他用户。
所以用户:不要同时提出多个请求,否则会被列入黑名单!
显然,如果你的服务器 有很多核心,很多内存,那最好 (这样你就可以分配很多内存ERDDAP™比它需要的还要多) ,以及高带宽互联网连接。 然后,内存很少或永远不是一个限制因素,但网络带宽成为更常见的限制因素. 基本上,随着越来越多的同时请求,任何给定用户的速度都会降低. 如果每个用户只是一次提交一个请求,这自然会减少收到的请求数量。
ERDDAP™从 THREDDS 获取数据
狦ERDDAP™从您网站的 THREDDS 获取一些数据, 将 THREDDS 数据文件复制出来有一些好处 。 (至少最受欢迎的数据集) 在另一个RAID,ERDDAP™能够进入ERDDAP™可以直接服务文件的数据。 时ERD我们这样做是为了我们最流行的数据集。
- ERDDAP™可以直接获得数据,而不必等待THREDDS重新装入数据集或.
- ERDDAP™可以立即注意到并输入新的数据文件,因此它不需要经常捕虫THREDDS来查看数据集是否已经改变. 见[<更新EveryNMILIS > (/docs/server-admin/datas#update Everynmilis / 服务器/数据集) 。 。 。 。
- 负载由2个RAIDS和2个服务器分担,而不是两个服务器都很难要求ERDDAP™和THREDDDS。 和THREDDS。
- 你避免了THREDDS小的不匹配问题 (默认) 最大请求大小。ERDDAP™有一种系统可以处理不匹配,但避免问题更好。
- 你有一个备份的数据副本 这总是一个好主意。
无论如何,不要运行THREDDS和ERDDAP™在同一个Tomcat。 在单独的Tomcats上运行,或者更好,在单独的服务器上运行.
我们发现,THREDDS 定期得到的状态 请求只是悬浮。 狦ERDDAP™正在从THREDDS获取数据 而THREDDS是在这个状态,ERDDAP™有个辩护人 (它说基于THREDDS的数据集是没有的) 但它仍然是麻烦的ERDDAP™因为ERDDAP™每次尝试从挂载的 THREDDS 重新装入数据集时,必须等待超时。 一些团体 (包括ERD) 通过频繁主动重启 THREDDS 来避免这种情况 (例如,在夜间工作) 。 。 。 。
慢慢反应
- 若为ERDDAP™正在缓慢响应 或者如果只是某些请求 反应缓慢, 你也许可以找出慢速是否合理和暂时 (例如,由于许多来自脚本的请求或WMS用户) 或者,如果某件事是 不可解释的错误,你需要关闭并重新启动Tomcat和ERDDAP™。 。 。 。
若为ERDDAP™反应缓慢,请参看下面的建议来确定原因,希望这将使你能够解决问题。 你可能有一个具体的起 点 (例如,特定请求 URL) 或模糊的起点 (例如,ERDDAP™缓慢) 。 。 。 。 你可能知道这个用户 (例如,因为他们发邮件给你) 或无. 你可能还有其他线索,或者没有。 由于所有这些情况以及所有可能的问题起因都模糊不清,下面的建议试图处理所有可能的起点和与反应缓慢有关的所有可能的问题。
- 寻找线索ERDDAP日志文件 ( 大家长会 /logs/log.txt (英语).) 。 。 。 。
\[在罕见的场合,有线索在Tomcat 日志文件 ( 移动猫 /日志/目录。) 。 。 。 。\]
查找错误消息 。 寻找大量来自一个的请求 (或几个) 用户或可能占用您服务器的大量资源 (内存、 CPU 时间、 磁盘访问、 互联网带宽) 。 。 。 。
如果有麻烦的话 一个用户 ,您常常可以通过网络服务获取关于用户身份的线索,例如: https://whatismyipaddress.com/ip-lookup 可以提供用户IP地址相关信息 (您可以在ERDDAP因为日志.txt文件) 。 。 。 。
- 如果用户似乎是一个 机器人 表现不好 (特别是搜索引擎试图填写ERDDAP™包含每个可能的输入值的窗体) 中,确保您已正确设置您的服务器机器人.txt文档。
- 如果用户似乎是一个 **脚本 (编号) ** 正在同时进行多个请求,联系用户,解释您ERDDAP™资源有限 (例如内存、CPU时间、磁盘访问、互联网带宽) ,请他们考虑其他用户,一次提出一个请求。 你也可以提到,如果他们不退缩,你将会列入黑名单。
- 如果用户似乎是一个 脚本 制作大量耗时的请求,请用户通过稍稍暂停来考虑其他用户 (2秒钟?) 在请求之间的脚本中。
- WMS客户 端软件 可能会要求很高 一个客户端经常一次要求6个定制图像. 如果用户似乎是一个WMS您可以:
- 别管它。 (被推荐了,因为他们很快就要行动了)
- 关闭您的服务器WMS服务通过ERDDAP's setup.html file. [永久失效連結] (中文(简体) ). (未建议)
- 如果这些请求似乎 愚蠢、疯狂、过度或恶意, 或者如果你无法以其他方式解决问题,考虑暂时或永久将用户的IP地址添加到[<请求黑名单 > in yourdatasets.xml文档] (/docs/server-admin/datas# 请求黑名单) 。 。 。 。
- 从电脑上复制问题
找出问题是否是一个数据集或所有数据集,对于一个用户或所有用户,仅针对某些类型的请求等等. 如果可以重复问题,请尽量缩小问题范围. 如果你不能重复问题,那么问题可能与用户的计算机,用户的互联网连接,或者你的机构互联网连接有关. - 如果是这样的话 一个数据集 反应缓慢 (也许只是为了 一类请求 从一个用户) ,问题可能是:
- ERDDAP访问数据集的源数据 (特别是关系数据库、卡桑德拉和远程数据集) 可能暂时或永久缓慢。 尝试检查源的速度独立于ERDDAP。 。 。 如果它慢,也许你可以改进它。
- 问题是否与具体请求或一般类型的请求有关? 请求的数据集子集越大,请求就越可能失败. 如果用户正在提出巨大的请求,请用户提出更小的请求,这些请求更有可能得到快速成功的响应.
几乎所有的数据集都比其他类型的请求更能处理某些类型的请求. 例如,当一个数据集存储不同时间块在不同文件中时,从大量时间点获取数据的请求可能非常缓慢. 如果当前请求属于困难类型,则考虑为这些请求提供一个最优化数据集的变体。 或者只是向用户解释,这种类型的 请求是困难的和耗费时间的,要求他们的耐心.
-
数据集可能没有优化配置. 您可以对数据集进行修改 。datasets.xml要帮助的块ERDDAP™更好地处理数据集。 举例来说,
- EDDGrid来自NcFiles的数据集,从压缩的nc4/hdf5文件中获取数据的速度在获取整个地理范围的数据时很慢. (例如,世界地图) 因为整个文件必须解压。 您可以将文件转换为未压缩的文件, 但是磁盘空间要求会大得多 。 在某些情况下,也许最好接受这种数据集将缓慢。
- [<subsetVariables>] (中文(简体) ). (/docs/server-admin/dataset#可变子) 标签对如何ERDDAP™处理 EDDTable 数据集。
- 你也许可以增加来自数据库的 EDD Table 速度数据集。
- 许多 EDDTable 数据集可以通过存储数据副本于NetCDF相邻的标记阵列文件,哪个ERDDAP™读得很快
如果您需要帮助加速一个特定的数据集,请包括问题描述和数据集的块datasets.xml看到我们的关于获得额外支助的章节。 。 。 。
- 若为 所有的东西 输入ERDDAP™这是 永远 缓慢,问题可能是:
- 运行中的计算机ERDDAP™可能没有足够的内存或处理能力。 跑起来真好ERDDAP™在现代的多核心服务器上 对于重用,服务器应拥有64位操作系统以及8GB或更多内存.
- 运行中的计算机ERDDAP™可能还运行着消耗大量系统资源的其他应用程序。 如果是的话,您能否获得一个专用服务器ERDDAP? 。 。 。 比如说 (这不是认可) ,您可以得到一个四核的Mac Mini服务器,8GB的内存为~1100美元.
- 若为 所有的东西 输入ERDDAP™这是 临时 慢点,快看ERDDAP因为 /erddap/status.html页 次 在您的浏览器中。
- 这是否ERDDAP™状态页面无法装入 ? 如果是这样,重新启动ERDDAP™。 。 。 。
- 那个ERDDAP™状态页面缓慢加载 (例如, > 5秒) ? 。 。 。 这表示一切ERDDAP™运行缓慢,但它不一定是麻烦。ERDDAP™也许只是真的很忙。
- 对于“响应失败时间” (自上次主要装入时起) ",是n=一个大的数字? 这表明最近有许多请求未获通过。 这也许是麻烦或麻烦的开始。 失败的中位数时间往往很大 (例如,2100毫秒) , (中文). 这意味着有 (是吗?) 很多活动线程。 将大量资源捆绑在一起 (如内存,打开文件,打开套接字,......) , (中文). 这是不好的。
- 对于"回应成功的时间" (自上次主要装入时起) ",是n=一个大的数字? 这表明最近有许多成功的请求。 这不是麻烦。 意思是说你ERDDAP™越来越重的使用。
- "非汤姆卡特等待线条的数量"是典型值的两倍吗?. 这经常是严重的麻烦 会导致ERDDAP™减速并最终冻结。 如果这种情况持续数小时,你可能会想主动重新启动ERDDAP™。 。 。 。
- 在"记忆使用总结"列表的底部,最后一个"记忆:目前使用"值是否很高? 这可能只是表示使用率很高,也可能是麻烦的迹象。
- 看看线程列表及其状态. 他们当中有不少人做不寻常的事吗?
- 已经 您所在机构的互联网连接 目前慢吗? 搜索互联网进行"网际网络速度测试",并使用免费在线测试之一,例如: https://www.speakeasy.net/speedtest/ 。 。 。 如果您的机构互联网连接缓慢, 那么连接ERDDAP™和远程数 据源的连接将十分缓慢ERDDAP™而用户将缓慢。 有时候,你可以解决这一点 通过停止不必要的互联网使用 (例如,观看流视频或视频会议电话的人) 。 。 。 。
- 已经 用户的互联网连接 目前慢吗? 让用户搜索互联网进行"网间网速测试",并使用免费在线测试之一,例如: https://www.speakeasy.net/speedtest/ 。 。 。 如果用户的互联网连接缓慢,会减慢他们的访问ERDDAP。 。 。 有时,他们可以解决这个问题 通过停止不必要的互联网使用 在他们的机构 (例如,观看流视频或视频会议电话的人) 。 。 。 。
- 粘着?
看我们的关于获得额外支助的章节。 。 。 。
关闭并重新启动
- 如何关闭和重新启动汤姆卡特ERDDAP™
你不需要关闭 重新启动Tomcat和ERDDAP若为ERDDAP™是暂时的慢, 慢一些已知的原因 (比如从脚本中请求很多,或者WMS用户) ,或应用到datasets.xml文档。
你需要关闭并重新启动Tomcat和ERDDAP™如果您需要对设置. xml 文件应用修改,或者ERDDAP™冷冻、绞刑或锁锁 在极端的情况下,Java可在收集全部垃圾时冻结一两分钟,但随后恢复。 所以最好等一两分钟看看Java页:1ERDDAP™如果它只是做一个漫长的垃圾收集。 (如果垃圾收集是一个常见的问题,向Tomcat分配更多内存。 。 。 。)
我不建议使用Tomcat网络应用管理器启动或关闭Tomcat. 如果你不完全关闭和 启动Tomcat, 你迟早会有PermGen的记忆问题。
关闭并重新启动TomcatERDDAP数字 :
- 如果您使用 Linux 或 mac ,则:
(如果您创建了运行Tomcat的特殊用户, 例如 tomcat, 请记住作为该用户执行以下步骤 。)
- 使用 cd 数据 移动猫 备忘
- 使用 ps -ef 键|grep tomcat 找到 java/ tomcat 进程 身份证 (希望只列出一个过程) ,我们会叫 Java 处理器 见下文。
- 若为ERDDAP™冷冻/饥饿/锁住,使用杀 - 3 Java 处理器 告诉Java (正在运行的 Tomcat) 要对 Tomcat 日志文件进行线程倾销 : 移动猫 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}我还没说完呢 重启后,您可以通过找到线程倾销信息来分析问题 (以及上面任何其他有用的信息) 输入 移动猫 /logs/catalina.out 和通过阅读相关部分ERDDAP™日志归档。 。 。 如果你愿意,你可以包括这个信息 并看到我们关于获得额外支助的章节。 。 。 。
- 使用./shutdown. 请检查date=中的日期值 (帮助). 嘘
- 使用 ps -ef 键|在java/tomcat进程未列出之前,grep tomcat会反复出现.
有时,java/tomcat过程需要2分钟才能完全关闭. 原因是:ERDDAP™向它的背景线条发出一个信息,让他们停止,但有时这些线条需要很长时间才能到达一个好的停止地点.
- 如果过了一分钟左右,java/tomcat不是自己停留,你可以使用
杀死 -9 Java 处理器
迫使java/tomcat进程立即停止。 如果可能,仅作为最后手段使用。 -9开关很强大,但可能会引发各种问题. - 要重新启动ERDDAP™,使用./启动.sh
- 视图ERDDAP™在浏览器中检查重新启动是否成功。 (有时候,你需要等待30秒 并尝试加载ERDDAP™。在 浏览器中再次显示它是否成功。)
- 如果您使用 Windows :
- 使用 cd 数据 移动猫 备忘
- 使用shutdown.bat
- 您可能想要/需要使用 Windows 任务管理器 (可通过 Ctrl Alt Del 访问) 以确保Java/汤姆卡特/ERDDAP™进程/应用程序已完全停止。 有时,程序/应用程序需要两分钟才能关闭。 原因是:ERDDAP™向它的背景线条发出一个信息,让他们停止,但有时这些线条需要很长时间才能到达一个好的停止地点.
- 要重新启动ERDDAP™,使用启动.bat
- 视图ERDDAP™在浏览器中检查重新启动是否成功。 (有时候,你需要等待30秒 并尝试加载ERDDAP™。在浏览器中再次显示它是否成功。)
频繁的崩溃或冻结
若为ERDDAP™变得缓慢,崩溃或冻结, 有些事情是错的。 进去看看ERDDAP日志文件试着找出原因 如果你做不到,请包括细节,看看我们关于获得额外支助的章节。 。 。 。
最常见的问题是一个麻烦的用户,他同时运行数个脚本和/或有人提出大量无效请求. 如果发生这种情况,你也许应该把用户列入黑名单。 当一个黑名单用户提出请求时,回复中的错误信息鼓励他们通过电子邮件将问题解决. 那你可以鼓励他们一次只运行一个脚本 并解决他们的脚本中的问题 (例如,请求从远程数据集中获取数据,在计时截止前无法响应) 。 。 。 。 见[<请求黑名单 > in yourdatasets.xml文档] (/docs/server-admin/datas# 请求黑名单) 。 。 。 。
在极端的情况下,Java可在收集全部垃圾时冻结一两分钟,但随后恢复。 所以最好等一两分钟看看Java页:1ERDDAP™如果它只是做一个漫长的垃圾收集。 (如果垃圾收集是一个常见的问题,向Tomcat分配更多内存。 。 。 。)
若为ERDDAP™问题不是麻烦的用户,也不是长长的垃圾收集,你通常可以通过重新启动ERDDAP™。 。 。 。 我的经验是ERDDAP™可以运行数月而无需重启.
监视器
你可以监视你ERDDAP'通过查看/erddap/status.html页 次,特别是上一节的统计数据。 若为ERDDAP™变得缓慢或冷冻 问题不光是极其沉重的用法 你通常可以解决问题重新启动ERDDAP™。 。 。 在/erddap/度量衡上通过普罗米修斯集成可以得到额外的度量衡.
我的经验是ERDDAP™可以运行数月而无需重启. 如果您想要应用一些修改, 您只需重新启动它ERDDAP设置. xml 或需要安装新版本时ERDDAP™, (中文).Java汤姆卡特,或者操作系统 如果您需要重新启动ERDDAP™经常出事 进去看看ERDDAP日志文件试着找出原因 如果你做不到,请包括细节,看看我们关于获得额外支助的章节。 。 。 作为临时解决方案,你可能会尝试使用纪念监视您的ERDDAP™并在需要时重新启动。 或者,你可以做一个CRON工作重新开始ERDDAP™ (主动) 定期。 编写脚本实现监控和重启自动化可能有点困难ERDDAP。 。 。 。 一些可能有助于:
- 如果Tomcat进程仍在运行中, 您可以 使用 grep 的 -c 切换来简化测试 : ps -u (韩语) 移动猫 用户 |grep - c java (英语). 这将减少输出为"1",如果Tomcat进程还活着,或者如果进程停止了"0".
- 如果你对gawk很在行,可以从结果中提取进程ID ps -u (韩语) 移动猫 用户 |grep java,并在脚本的其他行中使用进程ID.
如果你真的设立Monit或一个cron工作, 它会很好 如果你可以分享的细节 这样其他人可以获益于我们关于获得额外支助的章节你可以分享的地方。
常温
如果您多次使用Tomcat 管理器重新装入 (停止并启动) ERDDAP™, (中文).ERDDAP™可能无法启动 扔java.lang。 (原始内容存档于2019-09-21). Out out Memory Error: PermGen. 解决办法是定期 (还是每次?) 关闭并重新启动 tommcat,ERDDAP™,而不是仅仅重新装入ERDDAP。 。 。 。
\[更新 : 这一问题已大大降低或固定在ERDDAP™第1.24版 (中文(简体) ).\]
日志
- 日志.txt
若为ERDDAP™如果事情不能如预期的那样奏效的话, 研究一下错误和诊断信息是非常有用的。ERDDAP™日志文件。 - 日志文件是 大家长会 /logs/log.txt (英语). ( 大家长会 指定在设置. xml) 。 。 。 若无日志. txt 文件或日志 。 txt 文件自您重启以来没有更新ERDDAP™时,请看Tomcat 日志文件以查看是否有错误信息。
- 日志文件中的诊断信息类型 :
- "错误"一词在某事出错以致程序未能完成时使用. 虽然犯错误很烦人,但错误迫使你处理问题。 我们的想法是, 投出一个错误比有ERDDAP™沿着你没想到的路走
- "警告"一词在某事出错时被使用,但程序得以完成. 这些很罕见。
- 任何其他信息都只是信息。 您可以控制登录的信息量 [<日志级别 >] (/docs/server-admin/datasets#日志级别) datasets.xml。 。 。 。
- 数据集重装和用户回复需要 > 10秒完成 (成功或失败) 标记为 " (超过10个!) " .. 因此,您可以为此短语搜索log.txt文件,以找到重新装入速度缓慢的数据集或完成速度缓慢的请求请求号. 然后可以在log.txt文件中看起来更高一些,以查看数据集问题是什么,用户要求的是什么,以及来自谁. 这些缓慢的数据集载荷和用户请求有时会征税ERDDAP。 。 。 所以更多了解这些请求可以帮助你识别和解决问题.
- 信息以相当大块写入磁盘驱动器上的日志文件 。 好处是,这非常有效 --ERDDAP™永远不会屏蔽等待信息写入日志文件。 缺点是日志几乎总是以部分消息结尾,直到下块写完才会完成. 随时可以更新 (瞬间) 通过观看你的ERDDAP状态网页 : https://your.domain.org/erddap/status.html (或http://若为https未启用) 。 。 。 。
- 当log.txt文件达到20 MB时, 文件被重新命名为日志。 txt. previous and a new log.txt 文件创建. 因此日志文件不会累积.
在设置.xml中,可以指定日志文件的不同最大大小,在MegaBytes中. 最低允许是1 (甲基溴) 。 。 。 。 最多2000块 (甲基溴) 。 。 。 。 默认是20 (甲基溴) 。 。 。 。 例如:
<logMaxSizeMB>20</logMaxSizeMB>
- 当你重新开始时ERDDAP™, (中文). ERDDAP™创建log.txt和log的存档副本。 txt. 先前的文件在文件名称中带有时间戳. 如果在重启之前有麻烦,也许应该分析这些存档文件,以找出问题所在的线索. 如果不再需要归档文件, 您可以删除它们 。
解析日志.txt
ERDDAP木头 txt 文件不是用于解析的 (尽管您可能能够创建正则表达式来提取想要的信息) 。 。 。 它旨在帮助人类发现 出错时会发生什么 当您向错误或问题报告时ERDDAP™开发者,如果可能,请包含log.txt文件中与麻烦请求有关的所有信息.
出于效率原因,ERDDAP™仅将信息写入日志。 在积累了大量信息后 txt. 所以,如果你访问日志。 txt 就在错误发生后,与错误相关的信息可能尚未写入log.txt. 为了从 log.txt 获得完整的最新资料, 请访问您ERDDAP因为状态.html页面。 。 。 。 何时ERDDAP™进程,它将所有待决信息冲进日志.txt。
对于ERDDAP™请使用Apache 和/或Tomcat 日志文件改为ERDDAP'log.txt. (中文(简体) ). 请注意:ERDDAP因为状态.html页面 (有点) 和每日报告 (更多) 拥有大量预估使用量的统计数据。
Tomcat 日志
若为ERDDAP™不启动, 因为错误发生在很早ERDDAP启动时, 错误消息会出现在Tomcat的日志文件中 ( 移动猫 /logs/catalina. (原始内容存档于2018-09-29). 今日( E) 记录或 移动猫 /日志/目录。) 输入ERDDAP日志. txt 文件。 。 。 。
使用统计: 对于人们想要从日志文件中收集的大部分信息 (例如,使用统计) 请使用 Apache 和/或 Tomcat 日志文件。 它们的格式很好,有这类信息。 有许多分析工具,例如,AWStats 数据, (中文).弹性Search的基巴纳,以及计数器,但搜索网页以找到适合您目的的工具。
注意日志文件只识别用户为IP地址. 有些网站可以帮助您获取与特定IP地址相关的信息,例如,何为我的地址,但通常无法找到用户名。
而且,因为DHCP 人权方案,特定用户的IP地址在不同的日子可能不同,或者不同的用户在不同的时间可能拥有相同的IP地址.
或者,你可以使用类似的东西谷歌分析。 。 。 但请注意:当您使用Google Analytics等外部服务时,您会放弃您的用户隐私,让Google完全访问您网站上的活动,Google (还有其他人?) 能够永远保存 并用于任何目的 (也许不是在技术上,但可能在实践中) 。 。 。 你的用户没有同意 可能不知道他们会在你的网站上被跟踪 就像他们可能不知道 他们被跟踪的程度 在几乎所有的网站。 现在许多用户非常担心 他们在网上所做的一切 都被这些大公司监控 (谷歌,脸书等.) 以及政府, 并认定这是无端 侵入他们的生活 (1984年,如该书) 。 。 。 这促使许多用户安装产品,如隐私徽章最小化跟踪,使用替代浏览器,例如Tor 浏览器 (或关闭传统浏览器中的跟踪) ,并使用替代搜索引擎,如鸭子走。 。 。 如果您使用Google Analytics等服务, 请至少记录其使用及后果,<标准隐私政策 > 标记在ERDDAP因为 \[移动猫\]/webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml文件.
电子邮件日志
- 电子邮件LogYear-MM-DD.txt
ERDDAP™总是在当日的电子邮件中写入所有正在发送的邮件的文本 LogYEAR-MM-DD.txt 文件 输入 大家长会 备注 ( 大家长会 指定在设置. xml) 。 。 。 。 - 如果服务器无法发送电子邮件, 或者您已经配置ERDDAP™不发送电子邮件信息, 或者如果你只是好奇, 这个文件是一个方便的方式 来查看所有已经发送的电子邮件信息 。
- 如果前几天的电子邮件日志文件不再需要, 您可以删除它们 。
每日报告
《每日报告》有许多有用的信息 -- -- 所有来自你ERDDAP因为/erddap/status.html页 次还有更多
- 这是你最完整的总结ERDDAP状态
- 在其他统计中,它包括一个没有加载的数据集列表以及它们产生的例外.
- 当你开始的时候它就会生成ERDDAP™ (刚刚之后ERDDAP™尝试装入所有数据集) 每天早上7点后,
- 无论何时生成,都写给ERDDAP日志. txt 文件。 。 。 。
- 每当生成时,都会通过电子邮件发送给<电子邮件 Daily Reports To > 和<电子邮件 改为 > (中指定的设置. xml) 如果您已经设置了电子邮件系统 (在设置.xml) 。 。 。 。
状况 页次
你可以查看你的状态ERDDAP™从任何浏览器中选择<基数Url >/erddap/status.html
- 此页面是动态生成的, 因此它总是有您的最新动态统计ERDDAP。 。 。 。
- 它包括有关请求数量,内存使用,线程堆栈痕迹,任务Thread等的统计数据.
- 因为任何人都可以浏览状态页面,所以它没有包含相当多的信息,比如:每日报告。 。 。 。
增加/改变数据集
ERDDAP™通常重读datasets.xml每个 装入 Datasets 最小 值 (指定于设置. xml) 。 。 。 。 这样你就可以改变到datasets.xml任何时候,即使ERDDAP™正在运行。 不久将检测到一个新的数据集,通常是在 装入 Datasets 最小值 。 。 。 。 已更改的数据集在启用时将重新装入 重新装入每个 NMinutes 旧 (一、导 言datasets.xml) 。 。 。 。
旗帜
-
旗舰文件告诉ERDDAP™尝试尽快重装数据集
-
ERDDAP™将不会注意到一个数据集设置的任何变化 。datasets.xml直至ERDDAP™重新装入数据集。
-
告诉ERDDAP™以尽快重装数据集(在数据集之前)<重新装入 EveryNiminutes > 会导致重新装入, 将文件放入 大家长会 /旗帜 ( 大家长会 指定在设置. xml) 名称与数据集的相同datasetID。 。 。 。 这说明ERDDAP™尝试尽快重新装入数据集。 旧版本的数据集将一直供用户使用,直到新版本可用并进行解剖交换。 对于EDDGrid从文件夹和 EDD 表格 从 Files 中,重新加载的数据集将查找新的或更改的文件,读取,并将其纳入数据集. 因此重新装入的时间取决于新文件或更改文件的数量. 如果数据集有活动="假",ERDDAP™将删除数据集。
不良文件标记
-
/flag目录的一个变体是/badFilesFlag目录. (已添加ERDDAP™v2.12 (英语).)
如果你把文件放进 大家长会 / bad FilesFlag 目录带有一个datasetID作为文件名称 (文件内容不重要) ,然后尽快ERDDAP™见坏的档案 旗舰文件,ERDDAP™将:- 删除错误的 FilesFlag 文件 。
- 删除不良的档案.nc文件 (如果有一个) ,它有该数据集的不良文件列表。 对于数据集,如EDDGrid有孩子的 SideBySideDatasets , 此选项也删除不良的Files 。.nc所有儿童数据集的文件。
- 尽快重装数据集 。
因此,这导致ERDDAP™重新尝试之前的文件 (错了吗?) 标记为坏。
硬旗
-
/flag目录的另一个变体是/hardFlag目录. (已添加ERDDAP™页:1)
如果你把文件放进去 大家长会 硬旗有一个datasetID作为文件名称 (文件内容不重要) ,然后尽快ERDDAP™看见硬的 旗舰文件,ERDDAP™将:- 删除硬旗文件 。
- 删除数据集ERDDAP。 。 。 。
- 删除全部信息ERDDAP™已存储此数据集。 对于EDDGrid从文件夹和 EDD 表格 从 Files 子类中删除数据文件及其内容的内部数据库 。 对于数据集,如EDDGridSideBySide有子Datasets,它也删除了所有子数据集的数据文件及其内容的内部数据库.
- 重新装入数据集 。 对于EDDGrid从文件夹和 EDD 表格 从 Files 子类, 导致ERDDAP™要重读 全部 数据文件。 因此,重装时间取决于数据集中的数据文件总数. 因为数据集被从ERDDAP™当注意到硬旗时,数据集将无法使用,直到数据集完成重新加载. 耐心点 看着日志.txt文档,如果你想看看发生了什么。
硬旗变体删除数据集存储的信息, 即使数据集目前尚未装入ERDDAP。 。 。 。
难 旗子很有用 当你做一些事情 导致改变如何ERDDAP™例如,当您安装新版本时,读取并解释源数据ERDDAP™或当您在datasets.xml
- 旗帜的内容,badFilesFlag,以及硬旗文件无关紧要.ERDDAP™只要看看文件名 就能拿到datasetID。 。 。 。
- 在主要数据集重载之间,ERDDAP™不断寻找旗子、坏FilesFlag和硬旗文件。
- 注意当重新装入数据集时,所有文件在 大家长会 页:1缓存页:1 datasetID 目录被删除。 其中包括:.nc和通常缓存到~15分钟的图像文件。
- 注意如果数据集的 xml 包含活动=“虚假”,一个旗帜将使数据集变得不活动 (如果活动) ,而且无论如何,不会重新装入。
- 随时ERDDAP™运行 LoadDatasets 以进行大重装( 时间重装由<装入 Datasets MinMinutes > 或小重装 (由于外部或内部旗帜) , (中文).ERDDAP™全部读取<已解压CacheMaxGB>,<已解压的CacheMaxMinutesOld >,<用户 >,<请求黑名单 >,<缓慢的TroubleMillis > ,以及<订阅 Email Blacklist > 标记和切换到新设置 。 这样你就可以用旗子来获得ERDDAP™尽快通知这些标签的更改。
设置数据集旗
-
ERDDAP™拥有网络服务,以便通过 URL 设置旗帜。
- 举例来说,
https://coastwatch.pfeg.noaa.gov/erddap/setDatasetFlag.txt?datasetID=rPmelTao&flagKey=123456789
(这是假旗 密钥) 将设置 RPmelTao 数据集的旗帜。 - 每个都有不同的旗键datasetID。 。 。 。
- 管理员可以通过查看所有数据集的底部来查看其旗帜 URL 列表每日报告电子邮件。
- 管理员应该将这些URL视为机密,因为这样可以给人任意重设数据集的权利.
- 如果你认为旗钥匙落入了滥用它们的人的手中 你可以改变<旗帜KeyKey > 英寸设置. xml并重新启动ERDDAP强制ERDDAP™生成并使用不同的旗钥。
- 如果你改变了<flangKeyKey>,删除所有旧订阅 (请参看您每日报告中的清单) 并记住将新的URL发送给您想要的人。
- 举例来说,
https://coastwatch.pfeg.noaa.gov/erddap/setDatasetFlag.txt?datasetID=rPmelTao&flagKey=123456789
旗帜系统可作为更高效的ERDDAP™何时重新装入数据集。 例如,您可以设置一个数据集的<重装 EveryNminutes > 至大量 (例如,10080 = 1周) 。 。 。 然后,当你知道 数据集已经改变 (或许是因为您在数据集的数据目录中添加了文件) ,设置一个旗帜,以便尽快重新装入数据集。 通常会很快看到旗帜. 但如果LadyDatasets线程已经很繁忙,可能还需要一段时间才能在旗帜上行动. 但国旗系统比设定要灵敏得多 效率更高<将 EveryNMInuts > 重新装入到少量 。
删除数据集
如果一个数据集活动于ERDDAP™您想要暂时或永久关闭它 :
- 内datasets.xml数据集,数据集活动=“虚假”在数据集标记中。
- 等着ERDDAP™在下次重载时删除数据集或设置旗帜要显示的数据集ERDDAP™尽快注意到这一变化。 当你这样做,ERDDAP™并没有丢掉它可能存储的关于数据集的任何信息,当然也没有对实际数据做任何事情.
- 然后可以将活动=“虚假”数据集留在datasets.xml或去除它。
何时重新装入数据集 ?
一个名为RunLoadDatasets的线程是重新装入数据集时控制的主线程. 运行记录 数据集永远循环 :
-
运行LoadDatasets 注意到当前时间 。
-
Run LoadDatasets 启动一个 LoadDataset 线程来做一个“ MajorLoad ” 。 您可以在您的顶端看到当前/之前的主要Load的信息ERDDAP因为 /erddap/status.html页 次 (比如说,状态页面示例) 。 。 。 。
- 装入 Datasets 复制datasets.xml。 。 。 。
- 装入 Dataset 读取副本datasets.xml对于每个数据集,请查看数据集是否需要 (内容) 装入或移除。
- 如果一个旗帜此数据集的文件已存在,如果活动=“虚假”或 (内容) 如果活动为“ true” 则装入 (无论数据集的年龄) 。 。 。 。
- 如果数据集的数据集.xml块有活动="虚假",数据集目前已加载 (活动) 已经卸下 (删除) 。 。 。 。
- 如果数据集有活动="真",且数据集尚未加载,则已加载.
- 如果数据集有活动="真",且数据集已经加载,则如果数据集的年限,数据集会被重新加载 (自上次装入以来的时间) 大于其<重新装入 每个NMinutes > (默认 = 10080分钟) ,否则,数据集将单独存在。
- 装入 Dataset 完成 。
RunLoadDatasets线程等待LoadDatasets线程完成. 如果加载Datasets需要比加载Datasets更长的时间 最小数 (在设置.xml中指定的) , RunLoadDatasets 中断 LongDataset 线程。 理想的情况是,LoadDatasets注意到中断和结束。 但如果它没有注意到一分钟内中断,RunLoadDatasets就称负载Datasets. 停下来 () ,这是不可取的。 3. 虽然上一个主要LOAD的开始时间小于负载Datasets 最小数 (按设置.xml的规定,例如15分钟) ,运行LoadDatasets 反复寻找旗帜文档中 大家长会 /flag目录. 如果找到一个或多个旗舰文件,它们会被删除,而 RunLoadDatasets 启动一个 LoadDataset 线程来做一个“ minorLoad ” (主要标签=虚假) 。 。 。 你看不到小线索ERDDAP因为/erddap/status.html页 次。 。 。 。
- 装入 Datasets 复制datasets.xml。 。 。 。
- 装入 Dataset 读取副本datasets.xml而,对于每个有旗帜文件的数据集:
- 如果数据集的数据集.xml块有活动="虚假",数据集目前已加载 (活动) 已经卸下 (删除) 。 。 。 。
- 如果数据集有活动="真",则数据集是 (内容) 无论年龄大小 都装满了 未标记的数据集被忽略 。
- 装入 Dataset 完成 。
- 运行记录 数据集回溯到第1步.
注释:
-
启动 当您重新开始时ERDDAP™,每个带有“ true”的数据集都被装入。
-
快递 当一个数据集是 (内容) 已装入, 它的缓存 (包括任何数据响应文件和/或图像文件) 已经空出。
-
许多数据集 如果您拥有许多数据集和/或一个或多个数据集,则会缓慢到 (内容) 装入, 装入Datasets 线程可能需要很长时间才能完成工作, 甚至比装入Datasets 更长 明弥努特人.
-
一个装入数据串 一次性运行的LoadDataset线程从未超过一个。 如果在 LoadDatasets 已经运行时设置了旗帜,那么在 LoadDataset 线程完成运行之前,该旗帜可能不会被注意或被操作. 你可能会说:"这是愚蠢的。 为什么你不 开始一串新的线程来装入数据集呢?" 但是,如果你有很多数据集 从一个远程服务器获得数据, 甚至一个LadyDatasets线程会给远程服务器带来很大的压力。 如果您拥有大量从一个RAID上的文件获取数据的数据集,情况也是如此。 拥有一个以上 LoadDataset 线程的回报率迅速下降。
-
旗帜 = ASAP 设置一个旗帜只是表示数据集应该是 (内容) 尽快装入,不一定立即装入。 如果当前没有 LoadDataset 线索运行,数据集将在几秒内开始重新装入. 但是,如果一个LoadDatasets线程正在运行中,那么在LoadDatasets线程完成之前,数据集很可能不会重新装入.
-
旗舰文件已删除 一般来说,如果你在 大家长会 /erddap/旗下目录 (通过访问数据集的旗帜 Url 或者放一个实际文件) ,通常在删除该旗帜文件后很快会重新装入数据集.
-
旗帜对小型重装 每分钟一次 如果您有某种外部方式知道何时需要重新装入数据集, 如果您方便的话, 确保数据集总是更新的最佳方式是设置其重新装入 每个NMinute到大量 (10080号?) 并设置旗帜 (通过剧本?) 当它需要重新装入时。 这就是系统EDDGrid从Erddap和EDDTable FromErddap的使用收到需要重新装入数据集的消息.
-
查看日志.txt 许多相关信息都写给 大家长会 /logs/log.txt文件存档. 如果事情不像你所期望的那么顺利,看看日志. txt让你通过找出什么来判断问题ERDDAP™没错
-
搜索“ MajorLoad= true ” 以启动主要 LoadDataset 线程 。
-
搜索“ MajorLoad=false ” , 以启动小的 LongDataset 线程 。
-
搜索给定的数据集datasetID以了解情况 (内容) 装入或询问。
-
缓存的答复
总之,ERDDAP™不缓存 (存储) 对用户要求的回应。 理由是,大多数请求会略有不同,这样缓存就不会非常有效. 最大的例外是请求图像文件 (缓存自浏览器和程序Google Earth经常重新请求图像) 请求.nc文件 (因为它们不能在空中产生) 。 。 。 。ERDDAP™在不同的目录中存储每个数据集的缓存文件 : 大家长会 /缓冲/ datasetID 由于单个缓存目录可能有大量的文件,可能变得访问缓慢. 文件从缓存中删除的原因有三:
- 此缓存中的所有文件在ERDDAP™正在重新启动。
- 周期性地,任何文件都多于<缓存Minutes > 旧 (一、导 言设置. xml) 将删除。 根据年龄删除缓存中的文件 (非最近使用过的) 确保文件不会在缓存中呆太久。 虽然某个请求似乎应该总是回回同样的回复,但事实并非如此。 例如,atabledap包含时间的请求( T) 有点 时间 如果新数据到达数据集,则会更改。 和一个网格dap请求,包括\[最后一个\]如果新的数据到达数据集,时间维度将发生变化。
- 显示错误条件的图像被缓存, 但只保存几分钟 (情况很困难) 。 。 。 。
- 每次重新装入数据集时,该数据集缓存中的所有文件都会被删除. 因为可能要求"last"网格数据集中的索引,当重新装入数据集时,缓存中的文件可能会变得无效.
存储数据集信息
对于所有类型的数据集,ERDDAP™当一个数据集被装入时收集大量信息,并保存在内存中. 允许ERDDAP™对搜索、对数据集清单的要求和对数据集信息的要求迅速作出反应。
用于几类数据集 (重点EDDGrid复制, EDD Table Copy, 复制EDDGrid从 页:1 文件, 以及 EDD 表格从 页:1 文件) , (中文).ERDDAP™在磁盘上存储一些关于重新装入数据集时重用数据集的信息。 这大大加快了重装过程.
- 一些数据集信息文件是人可读的.json文件并存储于 大家长会 /数据集/ 最后2LettersOf DatasetID/ 数据集编号datasetID 。 。 。 。
- ERDDAP™仅在异常情况下删除这些文件,例如,如果从数据集中添加或删除变量datasets.xml块。
- 对数据集的大多数更改datasets.xml块 (例如,改变一个全局属性或可变属性) 不需要删除这些文件。 常规数据集重载将处理这些类型的变化. 你看得出来ERDDAP™通过设置旗帜用于数据集。
- 同样,数据文件的添加、删除或更改也将在ERDDAP™重新装入数据集。 不过ERDDAP™如果数据集正在使用[<更新EveryNMILIS > (/docs/server-admin/datas#update Everynmilis / 服务器/数据集) 系统。
- 您很少需要删除这些文件 。 需要强迫的最常见情况ERDDAP™删除存储的信息 (因为它过时/不正确,不会被自动固定ERDDAP) 当您修改数据集时datasets.xml块影响如何ERDDAP™解释源数据文件中的数据,例如改变时间变量格式字符串.
- 从一个ERDDAP™运行中 (即使数据集目前尚未装入) ,设置难 旗帜为数据集。 记住,如果数据集是大量文件的集合,重新装入数据集可能需要相当长的时间.
- 删除一个数据集存储的信息文件ERDDAP™没有运行,运行达斯德用于该数据集 (它比查找信息所在目录和手工删除文件容易) 。 。 。 记住,如果数据集是大量文件的集合,重新装入数据集可能需要相当长的时间.
内存状态
ERDDAP™不应该崩溃或冻结。 如果是的话,最可能的原因之一是记忆力不足. 您可以通过查看状态.html网页来监视内存的使用情况,该网页包括一条行,如
0 gc呼叫,0请求流出,0危险 自上次主要装入时起的内存邮件
(这些是越来越严重的事件)
和 MB inuses 和 gc 调用统计表中的列。 你能分辨出你的记忆是如何紧张的ERDDAP™是通过看这些数字。 数字较高表明压力更大。
- 甲基溴的用途应始终低于\- Xmx 内存设置。 。 。 数字越大,就是一个坏兆头。
- gc 调用表示次数ERDDAP™呼叫垃圾收集器 试图缓解高内存使用。 如果这个是大于100,那就代表了严重的麻烦.
- 框中显示收到请求的数量 (HTTP 错误编号为 503, 服务不可用) 因为内存的使用已经太高了。 理想的情况是,不应放弃任何请求。 如果有几个请求被放弃了,那也没关系, 但是如果很多人被放弃了,就会有严重的麻烦。
- 危险 内存邮件 - 如果内存使用率变得危险,ERDDAP™向列表中的电子邮件地址发送电子邮件<电子邮件 改为 > (在设置.xml) 带有活动用户请求列表。 正如电子邮件所说,请将这些邮件转发给克里斯. 约翰在诺阿。 戈夫 这样我们就能利用这些信息 改进未来的版本ERDDAP。 。 。 。
狦ERDDAP™由内存支撑 :
- 考虑分配更多服务器的内存到ERDDAP™通过改变TomcatQQmx 内存设置。 。 。 。
- 如果你已经分配了尽可能多的记忆ERDDAP™通过 -Xmx,考虑为您的服务器购买更多的内存 。 记忆是便宜的 (相对于新服务器的价格或您的时间) 来啊! - 然后增加 - Xmx. (笑声)
- 内datasets.xml设置<nGridThreads > 到 1, 设置<table Threads > to 1, 并设定<ipAddressMax RequestsActive > 改为 1.
- 查看日志.txt中对于低效或麻烦的要求 (合法但合法) 请求。 将IP地址添加到<请求黑名单 > 输入datasets.xml。 。 。 黑名单错误消息包括ERDDAP™管理员的电子邮件地址, 希望这些用户会联系您, 这样您就可以与他们合作使用 。ERDDAP™更高效地进行。 保存一个IP地址列表对于您黑名单和原因是有好处的,这样您就可以与用户联系到您.
- 查看log.txt中对恶意用户请求的请求. 将他们的IP地址添加到<请求黑名单 > 输入datasets.xml。 。 。 如果类似的请求来自多个类似的IP地址, 您可以使用一些 Who- is Services (例如, https://www.whois.com/whois/ ) 要从源代码中找出IP地址的范围, 并列出整个范围的黑名单 。 见[<请求黑名单 > 文档] (/docs/server-admin/datas# 请求黑名单) 。 。 。 。
记忆错误
当你建立ERDDAP™,您指定最大内存量Java可通过\- Xmx 设置。 。 。 。 若为ERDDAP™永远需要更多的记忆, 它会扔一个java。 兰曰. 出忆摩耶经.ERDDAP™做了很多检查,以使其能够优雅地处理错误 (例如,一个麻烦的请求会失败, 但系统保持其完整性) 。 。 。 但有时错误会损害系统的完整性 你必须重新开始ERDDAP。 。 。 。 希望,这是罕见的。
快速而容易的解决出记忆错误的方法是增加\- Xmx 设置,但您不应将 -Xmx 设置增加到服务器内存的80%以上 (例如,对于一个 10GB 服务器,不要设置 - Xmx 高于 8GB) 。 。 。 内存相对便宜,因此增加服务器内存可能是一个很好的选择. 但是,如果您已经将服务器中的内存最大化,或者由于其他原因无法增加,则您需要更直接地处理OutOutMemoryError的起因.
如果你往里看的话日志.txt要查看什么的文件ERDDAP™当错误发生时,你通常可以得到 一个很好的线索,说明 出记忆错误的原因。 可能的原因很多,包括:
- 一个单一的巨大数据文件可以引起OutOfMemoryError,显著的是,巨大的ASCII数据文件. 如果这就是问题所在,那就应该很明显,因为ERDDAP™将无法装入数据集 (表格数据集) 或从该文件读取数据 (用于网格数据集) 。 。 。 如果可行,解决方案是将文件分割成多个文件. 理想情况下,您可以将文件分割成逻辑块. 例如,如果文件有20个月的数据值,则将其分为20个文件,每个文件有1个月的数据值. 但即使主文件被任意分割,也有优势. 这种办法有多种好处:(a) 这将将读取数据文件所需的内存减少到1/20th,因为每次只读一个文件. (b) 财务 经常ERDDAP™能够更快地处理请求,因为它只需要查看一个或几个文件就可以找到特定请求的数据. (c) 国家 如果数据收集正在进行,那么现有的20个文件可以保持不变,你只需要修改一个,小的,新的文件就可以将下一个月的数据值添加到数据集.
- 单项巨大的请求可以引起"OutOutMemoryError". 特别是:orderBy选项将整个响应保存到内存中 (例如,做某种工作) 。 。 。 如果反应巨大,可能导致错误. 总会有一些要求,从不同方面来说,都太大了。 您可以通过增加 - Xmx 设置来解决这个问题 。 或者,可以鼓励用户提出一系列较小的请 求.
- 大量文件不太可能导致文件索引ERDDAP™创建为大小如此之大, 以至于文件会引发错误 。 如果我们假设每个文件都使用300字节,那么100万个文件只能占用300MB. 但是,数据文件数量庞大的数据集也会引起其他问题。ERDDAP很明显,这需要很长时间ERDDAP™在响应用户的数据请求时打开所有这些数据文件。 在这种情况下,解决方案可能是汇总文件,以便减少数据文件. 对于表格数据集,如果将当前数据集的数据保存在CF 数字 断层采样 (副秘书长) 相邻的标记矩阵数据文件 (请求.ncCF 文件来自ERDDAP) 然后制作一个新的数据集。 这些文件可以非常有效地处理ERDDAP因为来自 NcCFF 的 EDD 表格。 。 。 。 如果有逻辑组织 (每个都有一块空间和时间的数据) , (中文).ERDDAP™可以非常迅速地从它们中提取数据.
- 对于使用[<subsetVariables>] (中文(简体) ). (/docs/server-admin/dataset#可变子) 属性,ERDDAP™制作一个表格,列出这些变量值的独特组合。 用于大型数据集或何时<subsetVariables> 配置错误, 本表可能足够大, 以引起出记忆错误 。 解决方案是从列表中删除变量<subsetVariables> 数值众多,或根据需要删除变量,直到该表的大小合理为止。 内容ERDDAP™使用subsetVariables系统不起作用 (例如,网页负载非常缓慢) 当桌子上有超过10万行时。
- 总是可能有几个同时提出的大请求 (非常忙的时候ERDDAP) 可以结合造成记忆障碍. 例如,8项请求,每个请求使用1GB,将给-Xmx=8GB设置造成问题。 但很少每个请求同时处于内存使用高峰. 你会很容易看到,你的ERDDAP™非常忙于处理大的要求 但是,这是可能 的。 除了增加-Xmx设置外,这个问题很难解决.
- 还有其他情况。 如果你看着日志.txt要查看什么的文件ERDDAP™当错误发生时,你通常可以得到关于原因的线索。 在大多数情况下,有办法将这个问题降到最低 (见上文) ,但有时你只需要更多的内存和更高的 - Xmx 设置.
太多的打开文件
开始ERDDAP™v2.12, (中文(简体) ).ERDDAP™拥有监视打开文件数量的系统 (包括套接字和其他一些东西,而不仅仅是文件) Linux电脑上的Tomcat。 如果一些文件被错误地拒绝关闭 (a "资源泄漏") ,打开的文件数量可能会增加,直到超过操作系统允许的最大数量,并发生许多真正的坏事. 现在Linux电脑上 (因为Windows没有信息) 数字 :
- 在状态的极右.html网页上有一个“打开文件”栏,显示最大文件打开的百分比。 在Windows上,它只是显示"?".
- 何时ERDDAP™生成在每个主要数据集重载结束时的信息,它将打印到日志中。 txt 文件 : 打开FileCount= 当前 最大数= 最大数 %= 百分比
- 如果百分比大于50%,则发送电子邮件给ERDDAP™管理员和电子邮件 所有的东西 去电子邮件地址
如果百分比为100%,ERDDAP™麻烦大了 别让这事发生 如果百分比大于75%,ERDDAP™接近可怕的麻烦。 这不好。 如果百分率大于50%,则极有可能出现猛增,导致百分率达到100。 如果百分比大于50%,您应当:
- 增加允许打开文件的最大数量 :
- 在你开始TOMCAT前,每次都做这些改变 (把它们放进Tomcat启动器里?) 数字 : 无限制 - Hn 16384 ulimit -Sn 16384 (英语).
- 或者 通过编辑永久更改 (作为根) /etc/security/limits.conf 并添加线条: Tomcat 软无文件 16384 Tomcat 硬无文件 16384 这些命令假设运行Tomcat的用户被称为"Tomcat". 在许多 Linux 变体上, 您必须重新启动服务器来应用这些更改 。 对于这两种选择,上面的"16384"就是一个例子. 你选择你认为最好的号码。
- 重新开始ERDDAP。 。 。 操作系统将关闭任何打开的文件 。
请求失败
- 异常活动: > 25%的请求失败
作为每一次重装Datasets的一部分,通常每15分钟一次,ERDDAP™查看自上次重新装入 Datasets 以来请求失败的百分比 。 如果是大于25%,ERDDAP™发送电子邮件到ERDDAP™具有“ 异常活动 : > 25% 请求失败” 主题的管理员 。 该电子邮件包含一个位于底部附近的计数器,名为“请求者IP地址” (失败) (自上次加载主要任务以来) " .. 寻找这个。 它告诉你计算机的IP地址 最失败的请求。 您可以在\[大家长会\]/日志/日志.txt文档,看看他们正在提出什么样的请求。
您可以使用用户的 IP 号码 (例如,与 https://whatismyipaddress.com/ip-lookup ) 试图找出用户是谁或是什么。 有时会非常准确地告诉你用户是谁 (例如,它是一个搜索引擎的网络爬行器) 。 。 。 大多数时候它只是给你一个线索 (比如说,它是一个Amazonaws电脑, 它来自一些大学, 它是某个特定城市的人) 。 。 。 。
查看实际请求、IP号码和错误消息 (全部从日志.txt) 对于一系列错误,你通常可以 基本上 找出什么是错的。 根据我的经验,许多请求失败的原因有四个:
(1) 请求是恶意的 (例如,寻找安全弱点,或提出请求,然后在完成这些请求之前予以取消) 。 。 。 。 你应该用<请求黑名单 > 输入datasets.xml将IP地址列入黑名单。
2)搜索引擎天真地尝试了列表中的 URLERDDAP™网页和ISO 19115文档. 例如,有许多地方列出基点OPeNDAP例如,URL, https://coastwatch.pfeg.noaa.gov/erddap/griddap/jplMURSST ,用户应该添加文件类型 (例如,.das、.dds、.dds、.dds、.dds .html (中文(简体) ).) 。 。 。 但搜索引擎并不知道这一点. 而对基址的请求失败 。 一个相关的情况是,搜索引擎生成奇异的请求或试图填写表格,以便"隐藏"网页. 但搜索引擎经常做坏事,导致故障. 解决办法是:机器人.txt文档。
3)一些用户正在运行一个脚本,它不断要求一些不存在的东西. 也许它是一个数据集 曾经存在,但现在已经消失 (暂时或永久) 。 。 。 脚本经常不期望这样,所以不要明智地处理. 因此,脚本只是不断提出请求,而请求一直失败. 如果你能猜到谁是用户 (从上面的IP号码) ,联系他们,告诉他们数据集已经不可用,请他们更改脚本。
4)一些数据集确实有问题. 通常,ERDDAP™将会使麻烦的数据集不活动。 有时候不会,所以所有的要求都只会导致错误. 如果是,请解决数据集的问题,或 (如果你做不到的话) 将数据集设置为活动=“虚假”。 。 。 当然,这可能导致问题2。
有时错误并不那么严重 特别是如果ERDDAP™能够发现错误并迅速作出反应(<=1ms) (中文(简体) ). 所以你可以决定不采取行动。
如果其他所有失败,则有一个通用的解决方案:将用户的IP号码添加到 [<请求黑名单 >] (/docs/server-admin/datas# 请求黑名单) 。 。 。 这不是那么糟糕 也不是那么激烈的选择 用户会收到一个错误消息 说s/he已经被列入黑名单 并告诉他们你的 (联合国ERDDAP™管理员) 电子邮件地址 。 有时用户会联系您,您可以解决问题. 有时用户不联系你,你第二天就会看到来自不同IP号码的完全相同的行为. 黑名单新IP号码,希望他们最终能收到消息. (或者这是你的土拨鼠节,你们绝不能逃避它。 对不起)
机器人.txt
搜索引擎公司使用网络爬行器 (例如,谷歌 瓶装) 来检查网上的所有网页,以便将内容添加到搜索引擎中。 对于ERDDAP™这基本上是好的。ERDDAP™页面之间有很多链接,所以爬行者会找到所有网页并添加到搜索引擎中. 这样,搜索引擎的用户就可以在您身上找到数据集ERDDAP。 。 。 。
可惜的是,有些网路爬行者 (例如,谷歌 瓶装) 目前正在填写和提交表格,以便找到其他内容。 对于网站商业网站来说,这是伟大的。 但这太可怕了ERDDAP™因为它只是导致一个 无限 试图获取实际数据的次数。 这可能导致对数据的要求比所有其他用户的要求加起来还要多。 它让搜索引擎充满了愚蠢的,无意义的数据子集。
要让网络爬行者停止填写表格, 只是一般不查看他们不需要查看的网页, 您需要创建名为“ 文本文件” 的文本文件 。机器人.txt在您网站文档等级的根目录中,这样任何人都可以将其视为,例如, http://*www.your.domain*/robots.txt 。 。 。 。 如果你正在创造一个新的机器人。 txt 文件, 这是一个好的开始 :
User-Agent: \\*
Disallow: /erddap/files/
Disallow: /files/
Disallow: /images/
Disallow: /\\*?
Disallow: /\\*?\\*
Disallow: /\\*.asc\\*
Disallow: /\\*.csv\\*
Disallow: /\\*.dods\\*
Disallow: /\\*.esriAscii\\*
Disallow: /\\*.esriCsv\\*
Disallow: /\\*.geoJson\\*
Disallow: /\\*.htmlTable\\*
Disallow: /\\*.json\\*
Disallow: /\\*.mat\\*
Disallow: /\\*.nc\\*
Disallow: /\\*.odvTxt\\*
Disallow: /\\*.tsv\\*
Disallow: /\\*.xhtml\\*
Disallow: /\\*.geotif\\*
Disallow: /\\*.itx\\*
Disallow: /\\*.kml\\*
Disallow: /\\*.pdf\\*
Disallow: /\\*.png\\*
Disallow: /\\*.large\\*
Disallow: /\\*.small\\*
Disallow: /\\*.transparentPng\\*
Sitemap: http://***your.institutions.url***/erddap/sitemap.xml
(但换掉 您所在的机构 url 还有你的ERDDAP基础 URL 。)
搜索引擎可能需要几天的时间才能注意到,更改才能生效。
站 点地图.xml
作为 https://www.sitemaps.org 网站说:
Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling. In its simplest form, a Sitemap is an XML file that lists URLs for a site along with additional metadata about each URL (when it was last updated, how often it usually changes, and how important it is, relative to other URLs on the site) so that search engines can more intelligently crawl the site.
Web crawlers usually discover pages from links within the site and from other sites. Sitemaps supplement this data to allow crawlers that support Sitemaps to pick up all URLs in the Sitemap and learn about those URLs using the associated metadata. Using the Sitemap protocol does not guarantee that web pages are included in search engines, but provides hints for web crawlers to do a better job of crawling your site.
其实,自从ERDDAP™这是RESTful搜索引擎蜘蛛可以轻松爬行ERDDAP。 。 。 但他们经常这样做 (日报!) 必要时 (一个月?) 。 。 。 。
-
由于每个搜索引擎 可能正在爬你的全部ERDDAP™每天,这会导致大量不必要的请求.
-
这么说ERDDAP™为您生成 sitemap.xml 文件ERDDAP™它告诉搜索引擎ERDDAP™只是每个月都要爬起来
-
您应该添加一个引用ERDDAP' sitemap.xml 到您的网站机器人.txt文件 : 对象 : http://**www.yoursite.org**/erddap/sitemap.xml
-
如果这似乎没有给爬行者带来信息,您可以通 过访问这些 URL 来告诉各个搜索引擎有关 sitemap.xml 文件的信息 (但变化 您的学院 缩略语或缩略语 网址:www.yoursite.org 给您的ERDDAP' URL( URL )) 数字 :
-
https://www.bing.com/webmaster/ping.aspx?siteMap=http://**www.yoursite.org**/erddap/sitemap.xml
-
https://www.google.com/ping?sitemap=http://**www.yoursite.org**/erddap/sitemap.xml(I 想想看,你只需要打每个搜索引擎一次,永远。 然后,搜索引擎将定期检测到对sitemap.xml的更改。
-
数据传播/数据分发 网络 :Push和Pull技术
- 一般情况下ERDDAP™充当中介:它需要用户的请求;从远程数据源获取数据;重构数据;并将其发送给用户。
- Pull技术数字 :ERDDAP™还能够积极从远程数据来源获取所有现有数据,存储本地数据副本。 。 。 。
- Push技术数字 : 通过使用ERDDAP因为订阅服务,一旦有了新的数据,其他数据服务器就可以立即通知,以便它们可以请求数据 (通过拉动数据) 。 。 。 。
- ERDDAP因为EDDGrid从埃尔达普和来自Erddap的EDD表使用情况ERDDAP订阅服务旗帜系统因此,一旦有了新的数据,将立即通知委员会。
- 你可以把这些结合到大效果: 如果你包起来EDDGrid复制周围一个EDDGrid从Erddap 数据集 (或将 EDDTable Copy 绕过 EDDTable 从 Erddap 数据集包起来) , (中文).ERDDAP™将自动创建和维护另一个的本地副本ERDDAP数据集 。
- 由于订阅服务一有新数据就发挥作用,推技术就迅速传播数据 (在秒内) 。 。 。 。
这个建筑每个ERDDAP™负责确定其数据所在的管理人ERDDAP™来从.
- 其他人员ERDDAP™管理员也可以这样做. 行政管理人员之间没有必要进行协调。
- 若数ERDDAP™管理员相互连接ERDDAPs,形成数据发布网络.
- 数据将迅速、高效和自动从数据来源传播 (ERDDAPs 和其他服务器) 到数据再分配站点 (ERDDAP编号) 在网络的任何地方。
- 给定ERDDAP™既可以成为一些数据集的数据来源,也可以成为其他数据集的再分配站点.
- 由此形成的网络大致类似于通过程序建立的数据发布网络,例如:Unidata缺碘症/缺碘症,但结构不太僵硬。