Greetings, spamd is using 100% CPU on my RaspberryPi 2 B, even though there is no email coming in. Each process only runs 10 seconds or so, but then a new one starts. (I have m set to 1)
I tried some of the tips on the site, ran sa-compile and disabled most plugins, but that didn't help much(at all). Here's some info: # spamassassin -V SpamAssassin version 3.4.0 running on Perl version 5.18.4 # cat /etc/redhat-release Fedora release 21 (Twenty One) # rpm -qa |grep spamassassin spamassassin-3.4.0-13.fc21.armv7hl What the best way to optimize this/configure it different? I know a Raspberry Pi isn't ideal for a mail server, at least at this point, but as a test mail server, it would be nice to have spamassassin on it. And here's an strace of one of the processes: Process 30566 attached nanosleep({0, 873471171}, 0x7e83c91c) = 0 gettimeofday({1434737813, 744634}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737813, 745470}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737814, 748539}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737814, 749782}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737815, 752814}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737815, 753637}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737816, 756625}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737816, 757839}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737817, 761208}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737817, 761984}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737818, 764676}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737818, 765452}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737819, 768158}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737819, 768979}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737820, 771955}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737820, 772955}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737821, 775742}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737821, 776927}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737822, 782533}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737822, 783820}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737823, 788340}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737823, 789393}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737824, 791926}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737824, 792918}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737825, 795820}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737825, 796658}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737826, 799487}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737826, 800661}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737827, 803426}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737827, 804264}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737828, 807201}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737828, 808105}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737829, 811356}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737829, 812511}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737830, 815179}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737830, 816004}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737831, 818832}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737831, 819707}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, 0x7e83c91c) = 0 gettimeofday({1434737832, 823076}, NULL) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 gettimeofday({1434737832, 824216}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 nanosleep({1, 0}, {0, 883823067}) = ? ERESTART_RESTARTBLOCK (Interrupted by signal) --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_USER, si_pid=30568, si_uid=0} --- sigreturn({mask=[]}) = -1 EINTR (Interrupted system call) gettimeofday({1434737832, 943994}, NULL) = 0 rt_sigprocmask(SIG_BLOCK, [USR1], [], 8) = 0 rt_sigaction(SIGUSR1, NULL, {0x76eb4d40, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [USR1], NULL, 8) = 0 wait4(30568, 0x7e83cac8, WNOHANG, NULL) = 0 rt_sigaction(SIGHUP, NULL, {SIG_DFL, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGINT, NULL, {SIG_DFL, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGILL, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTRAP, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGABRT, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGBUS, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGFPE, NULL, {SIG_IGN, [FPE], SA_RESTORER|SA_RESTART, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGKILL, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGUSR1, NULL, {0x76eb4d40, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGUSR1, {SIG_DFL, [], SA_RESTORER, 0x76bdbe60}, {0x76eb4d40, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGSEGV, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGUSR2, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGPIPE, NULL, {SIG_IGN, [], SA_RESTORER, 0x76bdbe60}, 8) = 0 rt_sigaction(SIGALRM, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGSTKFLT, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGCONT, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGSTOP, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTSTP, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTTIN, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTTOU, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGURG, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGXCPU, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGXFSZ, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGVTALRM, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGPROF, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGWINCH, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGIO, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGPWR, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGSYS, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_2, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_3, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_4, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_5, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_6, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_7, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_8, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_9, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_10, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_11, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_12, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_13, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_14, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_15, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_16, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_17, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_18, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_19, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_20, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_21, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_22, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_23, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_24, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_25, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_26, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_27, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_28, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_29, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_30, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_31, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGRT_32, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGABRT, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGIO, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGSYS, NULL, {SIG_DFL, [], 0}, 8) = 0 close(4) = 0 close(5) = 0 close(3) = 0 exit_group(0) = ? +++ exited with 0 +++ Thanks in advance!