【发布时间】:2014-10-10 18:21:50
【问题描述】:
我的网站出现错误,并且我的网站 inode 计数超载。托管 inode 限制为 200,000,但我的网站 inode 计数为 909,496,我什至无法打开 phpMyAdmin。托管支持要求我删除未使用的文件。如何减少 inode 数量以及在基于 Magento 的网站中哪些文件未使用?
【问题讨论】:
标签: magento count runtime-error inode
我的网站出现错误,并且我的网站 inode 计数超载。托管 inode 限制为 200,000,但我的网站 inode 计数为 909,496,我什至无法打开 phpMyAdmin。托管支持要求我删除未使用的文件。如何减少 inode 数量以及在基于 Magento 的网站中哪些文件未使用?
【问题讨论】:
标签: magento count runtime-error inode
通常表明您需要更有能力的托管服务提供商。
Magento 在运行过程中创建文件的主要位置是var/ 文件夹和您的产品图像缓存。
如果您以前从未检查过,以下区域可能会积聚大量碎屑。使用 ftp 客户端,检查 var/ 文件夹中的以下区域:
检查您在var/session 中是否没有大量会话文件,删除任何早于当前日期的文件
检查var/report 中的文件是否过多,您可能想了解 Magento 生成它们的原因并解决问题。全部删除。
随着时间的推移,日志会在var/log 中生成几个大文件,删除它们,然后查看新文件以找出正在生成的错误。
导入和其他东西会导致临时文件在var/tmp 中累积,删除它们。还要检查 var/import 以获取可以删除的旧导入
存储的数据库备份保存在var/backup,使用管理后端System > Tools > Backups:
Magento 使用了大量的缓存来存储信息,如果你有一个很大的目录,最大的将是 Image Cache,它会包含从一开始就缓存的图像,如果你删除了产品,它会包含很多无用的图像随着时间的推移。使用管理后台,进入System > Cache Management:
清除 Magento 缓存。
刷新目录图像缓存。
删除产品时,Magento 不会删除产品图像。事实上,Magento 将是出现在电视上流行了一段时间的 Hoarder 节目之一的主要候选人。
希望这将减少您的 inode 数量,使其足以执行以下操作。 在继续之前,做几个数据库备份并存储在服务器之外!!!
下一步是询问您的托管服务提供商是否将您的数据库包含在该 inode 表计数中。如果他们这样做了,你会因为 Magento 使用 innodb 而陷入困境,而且很可能,他们没有设置 MySQL to use files-per-table,因此你可以通过优化每个表来调整 innodb 文件的大小。问他们在设置 MySQL 时是否使用files-per-table,如果他们不知道它是什么,请在你的胃里培养那种下沉的感觉。
有些表变得过大,特别是如果您没有在 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'
Magento has a built-in script to clean the logs. 如果由于您从未设置 cron 作业并且有太多需要清理的臃肿而运行此程序崩溃并出现内存错误,Crucial Web Host 有一个可以运行到 manually delete all log file contents. 的脚本,包括数据流Magento 日志清理过程不会清理的表。如果您经常使用数据流导入/导出,Nexcess has a script 可以检查数据流表的大小并清除它们。
清理数据库后,您需要使用 phpMyAdmin 优化 Magento 数据库中的每个表。如果托管服务提供商没有设置 files-per-table in MySQL,它会蹲下以减少您的 inode 数量。
毕竟,不要为删除应用程序文件或 Magento 使用的任何其他东西而烦恼。除了var/ 文件夹和图像缓存之外,它并没有真正积累那么多,您最终可能会得到一个死网站。
此时,您受制于共享服务器托管计划,该计划决定对每个人都公平,限制每个帐户可以执行的操作,并且不允许足够的资源来运行 Magento。开始寻找支持 Magento 的托管服务提供商,他们通常不会限制您的 inode 数量(允许太多人共享硬盘的廉价技巧),因为它们为您提供大量磁盘空间来运行电子商务网站。
【讨论】: