2. erlang系统在crash的时候会记录crashdump, 操作系统会产生coredump, 这个时间到底是多长。
/* heart.c */ ... /* Maybe interesting to change */ /* Times in seconds */ #define HEART_BEAT_BOOT_DELAY 60 /* 1 minute */ #define SELECT_TIMEOUT 5 /* Every 5 seconds we reset the watchdog timer */ /* heart_beat_timeout is the maximum gap in seconds between two consecutive heart beat messages from Erlang, and HEART_BEAT_BOOT_DELAY is the the extra delay that wd_keeper allows for, to give heart a chance to reboot in the "normal" way before the hardware watchdog enters the scene. heart_beat_report_delay is the time allowed for reporting before rebooting under VxWorks. */ int heart_beat_timeout = 60; int heart_beat_report_delay = 30; int heart_beat_boot_delay = HEART_BEAT_BOOT_DELAY; ...
If the emulator needs to write a crash dump, the value of this variable will be the file name of the crash dump file. If the variable is not set, the name of the crash dump file will be erl_crash.dump in the current directory.
Unix systems: If the emulator needs to write a crash dump, it will use the value of this variable to set the nice value for the process, thus lowering its priority. The allowable range is 1 through 39 (higher values will be replaced with 39). The highest value, 39, will give the process the lowest priority.
Unix systems: This variable gives the number of seconds that the emulator will be allowed to spend writing a crash dump. When the given number of seconds have elapsed, the emulator will be terminated by a SIGALRM signal.
If the environment variable is not set or it is set to zero seconds, ERL_CRASH_DUMP_SECONDS=0, the runtime system will not even attempt to write the crash dump file. It will just terminate.
If the environment variable is set to negative valie, e.g. ERL_CRASH_DUMP_SECONDS=-1, the runtime system will wait indefinitely for the crash dump file to be written.
This environment variable is used in conjuction with heart if heart is running:
Suppresses the writing a crash dump file entirely, thus rebooting the runtime system immediately. This is the same as not setting the environment variable.
Setting the environment variable to a negative value will cause the termination of the runtime system to wait until the crash dump file has been completly written.
Will wait for S seconds to complete the crash dump file and then terminate the runtime system.
如果我们不想产生coredump 可以透过 -env ERL_CRASH_DUMP_SECONDS 0 来关掉，避免产生dump时间过长的悲剧。同时每次crashdump产生的文件名相同，可以在启动通过 -env ERL_CRASH_DUMP erl_crash_date_time.dump 来修改，避免覆盖掉。
Post Footer automatically generated by wp-posturl plugin for wordpress.