月下博客

nextcloud性能优化

前文 树莓派安装nextcloud搭建私有云 介绍了在树莓派上安装和部署nextcloud私有云的详细步骤。因nextcloud功能强大,执行过程中会消耗大量的系统资源,对于硬件能力不强的树莓派来说很有必要进行系统性的优化调整。

本文整理自官方教程,给出优化next的详细步骤。

  1. 用cron替代后台ajax刷新执行定时任务。执行命令:sudo echo '*/5 * * * * www-data php /var/www/html/nextcloud/cron.php' >> /etc/crontab,注意/var/www/html/nextcloud应替换成你系统中nextcloud的根目录;
  2. 使用缓存。需要安装redis以及编辑nextcloud的配置文件,详情参考树莓派安装nextcloud搭建私有云
  3. 优化mysqld。编辑 /etc/mysql/conf.d/mysql.cnf文件,加入以下行: [mysqld]
    innodb_buffer_pool_size=256m
    innodb_io_capacity=4000
  4. 使用redis锁代替文件锁。安装redis,然后编辑nextcloud的配置文件,添加以下行: 'filelocking.enabled' => true,
    'memcache.locking' => '/OC/Memcache/Redis',
  5. 配置php-fpm。编辑/etc/php/7.3/fpm/pool.d/www.conf文件,设置动态进程数量: pm.max_children = 50
    pm.start_servers = 3
    pm.min_spare_servers = 3
    pm.max_spare_servers = 10
  6. 启用opcache。安装opcache模块,在/etc/php/7.3/fpm/php.ini编辑opcache设置: opcache.enable=1
    opcache.interned_strings_buffer=8
    opcache.max_accelerated_files=10000
    opcache.memory_consumption=128
    opcache.save_comments=1
    opcache.revalidate_freq=30
  7. 启用大文件上传。编辑/etc/php/7.3/fpm/php.ini,更改文件限制: upload_max_filesize=16G
    post_max_size=16G
    max_input_time = 3600
    max_execute_time = 3600
    memory_limit = 512M
    接着编辑/etc/nginx/nginx.conf,在http块中修改上传限制: client_max_body_size 16G;
    fastcgi_read_timeout 360S;

参考

  1. https://docs.nextcloud.com/server/17/admin_manual/installation/server_tuning.html#using-cron-to-perform-background-jobs