additional-information
ERDDAP™- 摆平你自己ERDDAP™
你该知道的事
代理错误
有时,要求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"网格数据集中的索引,当重新装入数据集时,缓存中的文件可能会变得无效.