2012-10-02 31 views
2

我已经在Windows Server 2012上设置了Piwik,并且我正在导入约20Gb的历史日志文件,分布在10个不同的站点上。如何让Piwik日志导入程序在Windows/IIS上运行得更快?

我已经将每个站点的日志文件合并为几个大文本文件,因为通配符导入在Windows上是不可能的。

导入过程已经过去了很长时间,目前我只能在具有16Gb RAM的四核服务器上获得大约25个记录/秒

我该如何加快速度?

回答

1

我发现加快Windows上的Piwik日志导入的关键是- 记录器设置。

Piwik文档推荐与服务器上的CPU核心数量相同的记录器,但我认为这是假设CPU是瓶颈。在我的情况下,我只能获得大约5%的CPU利用率,所以显然还有其他一些东西阻碍了它。我怀疑这是我的PHP/IIS/MySQL设置,因为Piwik前端也有点呆滞。

我添加--recorders = 64,现在我得到一个更可敬170条/秒

虽然这仍然感觉有点慢,所以任何其他建议都会受到欢迎。

1

我没有在Windows上运行,但我得到了一些我通过调整Mysql的InnoDB的设置得到了一些不错的性能改进:

key_buffer = 16M 
max_allowed_packet = 16M 
thread_stack = 256K 
thread_cache_size = 16 
innodb_buffer_pool_size = 2048M 
innodb_log_file_size = 512M 
innodb_log_buffer_size = 16M 
innodb_flush_log_at_trx_commit = 2 
sync_binlog = 0 
innodb_flush_method = O_DIRECT 
transaction-isolation = READ-COMMITTED 

不过要小心,某些设置影响安全。目前,我正在以每秒1000条记录的速度在四核i5上使用8个刻录机,这些刻录机拥有16 GB RAM,并且只有一个用于Mysql的磁盘。

我的配置使用Apache 2.2与mod_fcgid使用命令行客户端运行PHP。我还使用APC来缓存已编译的PHP代码。 Mysql是v5.5。所有在Ubuntu 12.10上运行。