| @PLUGIN@ Configuration |
| ====================== |
| |
| gc-conductor uses a postgresql database to manage the queue of repositories that |
| need to be garbage collected. The following commands can be used on the postgresql |
| database host to create the configured username/password; superuser is required: |
| |
| ``` |
| sudo /etc/init.d/postgresql start |
| sudo su - postgres |
| createuser -P -s -e username |
| ``` |
| |
| File `gerrit.config` |
| -------------------- |
| |
| `plugin.@PLUGIN@.packed` |
| : Packed threshold. By default, `40`. |
| |
| `plugin.@PLUGIN@.loose` |
| : Loose threshold. By default, `400`. |
| |
| `plugin.@PLUGIN@.databaseUrl` |
| : Database url. By default, `jdbc:postgresql://localhost:5432/`. |
| |
| `plugin.@PLUGIN@.databaseName` |
| : Database name. By default, `gc`. |
| |
| `plugin.@PLUGIN@.databaseUrlOptions` |
| : jdbc option properties to append to the database URL, example |
| `?ssl=true&loglevel=org.postgresql.Driver.DEBUG`. Empty by default. |
| |
| `plugin.@PLUGIN@.username` |
| : Database username. By default, `gc`. |
| |
| `plugin.@PLUGIN@.password` |
| : Database password. By default, `gc`. |
| |
| `plugin.@PLUGIN@.threadPoolSize` |
| : Thread pool size. By default, `4`. |
| |
| `plugin.@PLUGIN@.expireTimeRecheck` |
| : Time before a check is considered expired. By default, `60s`. |
| |
| GC executor |
| -------------------- |
| |
| GC executor is packaged as a runnable java jar. The [build documentation][build] |
| details the steps to build gc-executor.jar. Once built, gc-executor.jar is deployed |
| to the node charged of doing the garbage collection (GC) process. |
| |
| The configuration can be passed to the gc executor jar by using: |
| |
| ``` |
| java -DconfigFile=/path/to/config_file.config -jar executor.jar |
| ``` |
| |
| ### File `gc.config` |
| |
| The file `gc.config` is a Git-style config file that controls several settings for |
| gc executor. The contents of the `gc.config` file are cached at startup. If this |
| file is modified, gc executor needs to be restarted in order to be able to use the |
| new values. |
| |
| |
| #### Sample `gc.config`: |
| |
| ``` |
| [jvm] |
| javaHome = /opt/gerrit/jdk8 |
| javaOptions = -Xrunjdwp:transport=dt_socket,address=localhost:8788,server=y,suspend=n |
| javaOptions = -Xms1g |
| javaOptions = -Xmx32g |
| javaOptions = -XX:+UseG1GC |
| javaOptions = -XX:MaxGCPauseMillis=2000 |
| [core] |
| executors = 2 |
| pickOwnHostOnly = false |
| delay = 0 |
| |
| [db] |
| databaseUrl = jdbc:postgresql://same_host_as_plugin:5432/ |
| databaseName = testDb |
| databaseUrlOptions = ?ssl=true |
| username = testUser |
| password = testPass |
| |
| [evaluation] |
| packed = 40 |
| loose = 400 |
| repositoriesPath = /path/to/repositories |
| startTime = Sat 22:00 |
| interval = 1 week |
| ``` |
| |
| #### Section `jvm` |
| |
| `jvm.javaHome` |
| : Location of java. By default /opt/gerrit/jdk8 |
| |
| `jvm.javaOptions` |
| : Options to pass along to the Java runtime. If multiple values are |
| configured, they are passed in order on the command line, separated by spaces. |
| |
| #### Section `core` |
| |
| `core.executors` |
| : Number of executors. By default, 2. |
| |
| `core.pickOwnHostOnly` |
| : Whether to pick repositories added to queue from same host only or not. |
| By default, true. |
| |
| `core.delay` |
| : minimal delay in seconds a repository must be in queue before it can be |
| picked. By default, 0. |
| |
| #### Section `db` |
| |
| `db.databaseUrl` |
| : Database URL. By default, `jdbc:postgresql://localhost:5432/`. |
| |
| `db.databaseName` |
| : Database name. By default, `gc`. |
| |
| `db.databaseUrlOptions` |
| : jdbc option properties to append to the database URL. For example, |
| `?ssl=true&loglevel=org.postgresql.Driver.DEBUG`. Empty by default. |
| |
| `db.username` |
| : Username to connect to the database. By default, `gc`. |
| |
| `db.password` |
| : Password associated to that username. By default, `gc`. |
| |
| It is important to note here that the parameters used in this section should be |
| the same used in `gerrit.config` to define the database settings. |
| |
| #### Section `evaluation` |
| |
| This section allows to configure dirtiness evaluation for a list of repositories. |
| |
| `evaluation.packed` |
| : number of pack files in a repository for it to be considered dirty. By |
| default, 40. |
| |
| `evaluation.loose` |
| : number of loose objects in a repository for it to be considered dirty. |
| By default, 400. |
| |
| `evaluation.repositoriesPath` |
| : path to the repositories to be evaluated for dirtiness. By default, |
| /opt/gerrit/repos. |
| |
| `evaluation.startTime` |
| : start time to define the first execution of the repositories dirtiness |
| evaluation. Expressed as <day of week> <hours>:<minutes>. By default, |
| disabled. |
| |
| This setting should be expressed using the following time units: |
| |
| * <day of week> : Mon, Tue, Wed, Thu, Fri, Sat, Sun |
| * <hours> : 00-23 |
| * <minutes> : 00-59 |
| |
| `evaluation.interval` |
| : interval for periodic repetition of dirtiness evaluation. By default, |
| disabled. |
| |
| The following suffixes are supported to define the time unit for the interval: |
| |
| * h, hour, hours |
| * d, day, days |
| * w, week, weeks (1 week is treated as 7 days) |
| * mon, month, months (1 month is treated as 30 days) |
| |
| If no time unit is specified, days are assumed. |
| |
| ### GC execution |
| |
| Executors can be started/stopped using gcctl.sh script. |
| |
| ``` |
| /opt/gerrit/gc-conductor/gcctl.sh {start|stop|restart|status|check} |
| ``` |
| |
| [Back to @PLUGIN@ documentation index][index] |
| |
| [build]: build.html |
| [index]: index.html |