Go to main content

Creating Package Repositories in Oracle® Solaris 11.4

Exit Print View

Updated: November 2018
 
 

Performance Considerations for Copying Repositories

If you download repository files from the Oracle Solaris download site, or if you use the pkgrecv command shown in Copying a Repository From the Internet to retrieve repository content from an Internet location, consider the following configuration to improve your transfer performance:

  • Ensure that your ZFS storage pool capacity (percentage of pool space used) is less than 90%. Use the zpool list command to view your pool capacity.

  • If you are using a proxy, check the performance of the proxy.

  • Close applications that use a large amount of memory.

  • Ensure adequate free space is available in the temporary directory. During its operations, the pkgrecv command uses $TMPDIR as a temporary storage directory. If TMPDIR is not set, pkgrecv uses /var/tmp for this temporary storage. Ensure that $TMPDIR or /var/tmp has enough free space for the size of the pkgrecv operation you are doing.

  • If you are using the pkgrecv command to copy a large repository, consider using the --clone option. The --clone option makes the destination repository an exact copy of the source repository, which is significantly faster than the default pkgrecv copy mode. See How to Explicitly Copy a Repository From the Internet and How to Clone a Local IPS Package Repository.

  • On the ZFS file system that hosts the repository, set atime to off for better performance when updating the repository. The atime property controls whether the access time for files is updated when the files are read. Turning this property off avoids producing write traffic when reading files.

    Set compression to on or lzjb. The lzjb compression algorithm is optimized for performance while providing good data compression. For better compression, set compression to lz4. The lz4 compression algorithm provides better compression than lzjb with lower CPU overhead.

    Note that setting compression only affects the package manifest data; the package file data is already compressed. To check the compression, check the compressratio value for the dataset. See the zfs(8) man page for more information.