解决 Maven 私服磁盘空间不足问题。
磁盘空间过小出错
- 私服无法使用了,并且登陆进去什么也不能用操作也操作不了
Return code is: 500 , ReasonPhrase:javax.servlet.ServletException: com.orientechnologies.orient.core.exception.OLowDiskSpaceException: Error occurred while executing a write operation to database 'component' due to limited free space on the disk (3645 MB). The database is now working in read-only mode. Please close the database (or stop OrientDB), make room on your hard drive and then reopen the database. The minimal required space is 4096 MB. Required space is now set to 4096MB (you can change it by setting parameter storage.diskCache.diskFreeSpaceLimit) .?? DB name="component". -> [Help 1]
处理方法
清理磁盘空间
- 清理磁盘上无用的文件,看看能不能腾出空间
- 这里没有可腾出的空间
diskFreeSpaceLimit
- nexue安装目录 /bin/nexus.vmoptions 中的 storage.diskCache.diskFreeSpaceLimit 属性
-
设置 storage.diskCache.diskFreeSpaceLimit 属性值,由大改小,将默认 4096 改为 2048
- 这样调用后 Maven 服务登陆进去后就可以操作了
创建任务
登陆后 -> 点左上侧小齿轮 -> System -> Tasks
- Admin - Compact blob store
这个任务可以将 31.6G 压缩后 1.5G
任务设置成定时执行
- Maven - Delete SNAPSHOT
处理完之后,可以把 storage.diskCache.diskFreeSpaceLimit 参数值还原。
相关参考
https://blog.csdn.net/sj1231984/article/details/101015493
https://my.oschina.net/gcy1/blog/1555474
Compact default blob store
31.6G->1.5G
Publish Maven Indexes
Purge unused components and assets
Purge Unused Maven snapshot versions
Rebuild Maven repository metadata
Rebuild repository index
Remove Maven indexes
Remove snapshots from Maven repository