减少 Magento 网站上的 inode 数量

hot*_*der 4 inode runtime-error count magento

我的网站上出现错误,并且我的网站 inode 计数超载。托管 inode 限制为 200,000,但我的网站 inode 计数为 909,496,我什至无法打开 phpMyAdmin。托管支持要求我删除未使用的文件。如何减少 inode 数量以及在基于 Magento 的网站中未使用哪些文件?

Fia*_*abs 5

通常表明您需要更有能力的托管提供商。

Magento 在操作过程中创建文件的主要位置是文件var/夹和产品图像缓存。

如果您以前从未检查过,以下区域可能会积聚大量碎屑。使用 ftp 客户端检查文件夹中的以下区域var/

  1. 检查您的 中是否有无数的会话文件var/session,删除任何早于当前日期的内容

  2. 检查 中没有过多的文件var/report,您可能想找出 Magento 生成它们的原因并解决问题。全部删除。

  3. 随着时间的推移,日志记录将在 中生成几个巨大的文件var/log,删除它们,然后查看新文件以找出正在生成的错误。

  4. 导入和其他东西可能会导致临时文件累积在 中var/tmp,请删除它们。还检查var/import可以删除的旧导入

存储的数据库备份保存在 中var/backup,使用管理后端System > Tools > Backups

  1. 将最新的数据库备份下载到本地工作站并删除所有备份。

Magento 使用大量缓存来存储信息,如果您有一个很大的目录,最大的将是图像缓存,并且它将包含从一开始就缓存的图像,如果您随着时间的推移删除了产品,它将包含大量无用的图像。使用管理后端,进入System > Cache Management

  1. 清除 Magento 缓存。

  2. 刷新目录图像缓存。

当您删除产品时,Magento 不会删除产品图像。事实上,Magento 是出现在电视上流行了一段时间的 Hoarder 节目之一的主要候选者。

  1. 网站正常运行后,请考虑安装 ImageClean

希望这会减少您的索引节点数量,足以执行以下操作。在继续之前,请进行一些数据库备份并存储在服务器之外!

下一步是询问您的托管提供商是否将您的数据库包含在该 inode 表计数中。如果他们这样做,你就会陷入困境,因为 Magento 使用 innodb,而且很可能他们没有便宜地设置MySQL 来使用files-per-table,因此你可以通过优化每个表来调整 innodb 文件大小。询问他们在设置MySQL时是否使用files-per-tableMySQL,如果他们不知道它是什么,你的胃里就会有一种沉沉的感觉。

一些表变得过大,特别是如果您没有在 cPanel 中正确设置 Magento 主 cron 作业触发器并检查以确保在System > Configuration > Advanced > System > Log Cleaning. 这些表如下:

        'dataflow_batch_export',
        'dataflow_batch_import',
        'log_customer',
        'log_quote',
        'log_summary',
        'log_summary_type',
        'log_url',
        'log_url_info',
        'log_visitor',
        'log_visitor_info',
        'log_visitor_online',
        'index_event',
        'report_event',
        'report_viewed_product_index',
        'report_compared_product_index',
        'catalog_compare_item',
        'catalogindex_aggregation',
        'catalogindex_aggregation_tag',
        'catalogindex_aggregation_to_tag'
Run Code Online (Sandbox Code Playgroud)

Magento 有一个内置脚本来清理日志。如果运行此程序因内存错误而崩溃,因为您从未设置过 cron 作业,并且有太多的膨胀需要清理,Crucial Web Host 有一个脚本,可以运行该脚本来手动删除所有日志文件内容。包括 Magento 日志清理过程不会清理的数据流表。如果您经常使用数据流导入/导出,Nexcess 有一个脚本可以检查数据流表的大小并清除它们。

清理数据库后,您将需要使用 phpMyAdmin 来优化 Magento 数据库中的每个表。files-per-table如果托管提供商没有在 MySQL 中设置,它会抢占以减少你的 inode 数量。

毕竟,不要费心删除应用程序文件或 Magento 使用的任何其他内容。除了文件夹和图像缓存之外,它并没有真正积累那么多var/,您可能最终会得到一个死网站。

此时,您受到共享服务器托管计划的支配,该计划决定通过限制每个帐户可以执行的操作来对每个人都公平,并且不允许足够的资源来运行 Magento。开始寻找支持 Magento 的托管提供商,通常他们不会费心限制您的 inode 数量(这是允许太多人共享硬盘的廉价技巧),因为他们为您提供足够的磁盘空间来运行电子商务网站。