Eu tenho um desktop com uma terceira geração do Core i5 e 4 GB de RAM. Eu estou usando a máquina para testar a construção de alguns projetos de software livre para os quais eu contribuo. A máquina não serve para nenhum outro propósito.
Eu aloquei 4 GB de espaço de troca . Parece que ainda estou ficando sem memória.
$ make -j 4
...
/opt/developerstudio12.6/bin/CC -DHAVE_CONFIG_H -I. -O2 -template=no%extdef -DCRYPTOPP_DISABLE_SHANI -D__SSE2__=1 -D__SSSE3__=1 -D__SSE4_1__=1 -D__SSE4_2__=1 -D__AES__=1 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp/"' -g -c -o cryptest-validat3.o 'test -f 'validat3.cpp' || echo './''validat3.cpp
DBG_GEN FATAL ERROR: dbg_tables.c:171 - fwrite() failed to write required bytes [DBG_GEN 5.7.6]
CC: ube failed for validat3.cpp
O erro também se move:
$ make -j 4
...
/opt/developerstudio12.6/bin/CC -DHAVE_CONFIG_H -I. -O2 -template=no%extdef -DCRYPTOPP_DISABLE_SHANI -D__SSE2__=1 -D__SSSE3__=1 -D__SSE4_1__=1 -D__SSE4_2__=1 -D__AES__=1 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp/"' -g -c -o cryptest-validat0.o 'test -f 'validat0.cpp' || echo './''validat0.cpp
source='validat1.cpp' object='cryptest-validat1.o' libtool=no \
DEPDIR=.deps depmode=none /bin/sh ./depcomp \
/opt/developerstudio12.6/bin/CC -DHAVE_CONFIG_H -I. -O2 -template=no%extdef -DCRYPTOPP_DISABLE_SHANI -D__SSE2__=1 -D__SSSE3__=1 -D__SSE4_1__=1 -D__SSE4_2__=1 -D__AES__=1 -DCRYPTOPP_DATA_DIR='"/usr/local/share/cryptopp/"' -g -c -o cryptest-validat1.o 'test -f 'validat1.cpp' || echo './''validat1.cpp
...
libsunir aborting on error
Assertion failed: IR_FALSE, file ../src/IrLib.c, line 204, function ir_err_report
...
CC: Fatal error in /opt/developerstudio12.6/lib/compilers/bin/ube
CC: Status 134
make[1]: *** [Makefile:1477: cryptest-validat1.o] Error 134
Não estou executando nenhum outro programa. Apenas o compilador através do makefile.
Quando examino dmesg
, vejo WARNING: /tmp: File system full, swap space limit exceeded
. De acordo com o documento do Oracle AVISO: / tmp: sistema de arquivos cheio, swap de espaço limite excedido :
Cause
The system swap area (virtual memory) has filled up. You need to
reduce swap space consumption by killing some processes or possibly by
rebooting the system.
Action
For information about increasing swap space, refer to "Not enough
space".
Estou confuso 4 GB ou RAM e 4 GB de swap não é suficiente para executar um compilador.
Não sei quanto mais memória preciso alocar para executar o compilador.
Quanta memória virtual devo alocar para que o compilador possa ser executado sem travar?
$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 21.3G 207G 4.85M /rpool
rpool/ROOT 13.6G 207G 31K legacy
rpool/ROOT/solaris 13.6G 207G 12.9G /
rpool/ROOT/solaris/var 526M 207G 367M /var
rpool/VARSHARE 164K 207G 69.5K /var/share
rpool/VARSHARE/pkg 63K 207G 32K /var/share/pkg
rpool/VARSHARE/pkg/repositories 31K 207G 31K /var/share/pkg/repositories
rpool/VARSHARE/zones 31K 207G 31K /system/zones
rpool/dump 1.96G 207G 1.90G -
rpool/export 1.62G 207G 33.5K /export
rpool/export/home 1.62G 207G 33K /export/home
rpool/export/home/apolyakov 38K 207G 38K /export/home/apolyakov
rpool/export/home/jwalton 1.62G 207G 1.62G /export/home/jwalton
rpool/swap 4.13G 207G 4.00G -
E informa que é saudável mesmo nos lançamentos das falhas de memória ou armazenamento:
$ zpool status -x
all pools are healthy
E alguma contabilidade:
$ zpool status -v
pool: rpool
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c1t0d0 ONLINE 0 0 0
errors: No known data errors
O nome desta máquina é solaris3
. É a terceira máquina a experimentar esses problemas. O primeiro foi um servidor DL380 G5 usado usado na HCL da Sun. O segundo foi um Intel Utlra-24 da Sun. O terceiro é o Core i5 low-end.
Eu não faço nada de especial ao colocar um sistema operacional no hardware. Eu baixei o Solaris x86 ISO da Sun (duas vezes agora). Eu corro o instalador e tomo os padrões. Quando solicitado, seleciono a opção "usar disco inteiro" .
Após a instalação do SO, habilito o editor do Solaris Studio. Eu então instale o Autoconf, o Automake, o Libtool, o Git, o Subversion, o GDB, o Sun Studio 12.2 até o 12.6 e algumas outras ferramentas de desenvolvimento. Existem centenas de gigabytes de espaço livre disponíveis nas três máquinas após a instalação do software extra.
Todas as máquinas estão sem cabeça. Eu removo o monitor assim que o sistema operacional é instalado. Embora as máquinas estejam no meu porão, eu trabalho remotamente em SSH.
Eu não sou um administrador do Solaris e não altero arbitrariamente as configurações. Eu altero as configurações em resposta a problemas como este. Depois de alterar uma configuração como tamanho de swap, reinicio a máquina com reboot -p
.