Hi Alejandro,
In first place, let's diagnose the problem. DSLR raw file formats don't allow incremental file reading operations. This means that to integrate a set of these files, all of them have to be read and loaded in RAM first. Each one of your 5D Mark III raw images requires the following space in memory:
5796 * 3870 * 4 = 89,722,080 bytes = 85.57 MiB
Each pixel requires 4 bytes because ImageIntegration stores raw pixel values in 32-bit floating point format. Now if we multiply this by 159:
5796 * 3870 * 4 * 159 = 14,265,810,720 bytes = 13.29 GiB
which is still manageable on Linux with your 16 GiB. However, take into account that each image requires more space temporarily, especially to compute some statistics and to perform noise evaluation (by the way, you should disable it to integrate bias frames). There are also a lot of internal data structures that ImageIntegration creates for its internal use. All of these items are contributing to exhaust your RAM after loading 159 images.
A brute force solution to this problem is obviously installing more RAM in your machine. However, a better solution in this case is converting the DSLR raw files to a format that allows incremental file reading, such as FITS. I'd use the BatchFormatConversion script to convert all of your bias frames to FITS. With incremental file reading, you can integrate thousands of images without problems because the files are read by small pixel strips (the practical limit would be the number of open files allowed by the operating system, which is 1024 by default on x64 Linux, and you can increase it if necessary with the ulimit command).