トップ «前の日記(2014-08-20) 最新 次の日記(2014-08-22)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2014-08-21 :-)

_ 午前

0930 起床 || 今日も休み

1020 おひる。うどん

1100 アニメ消化

_ 午後

1300 通院 || MRI撮影 || 撮影するときに体をグルグル巻かれたり耳栓(!) を装着するなどした || 以前 MRI 撮影した別の病院では体を巻かれることもないし耳栓というかヘッドフォンを装着し音楽を聞かされた || 病院によって MRI の設備が異なるようだ || 見た目 若干使い込まれてたし

1400 地図がどうのこうの

1500 散歩

IMG_6142

_

1700 アニメ消化

2130 飯。塩鮭

_ セットアップ中のサーバーの ruby プロセスが CPU 100% 近く使っていた

ユーザー www で走らせている ruby は tdiary しか無いんだがまだ原因は特定できず。

なおグローバルのネットワークなんだが正引きは設定していない。

環境

  • NetBSD/i386 6.1.4
  • tDiary 4.0.3.20140509 (数ヶ月前の git)
  • ruby 2.0.0p481

現象

計算機のトラブルシューティングをちゃんと勉強しておくんだった。

top

load averages:  1.32,  1.26,  1.30;               up 20+20:04:22                                                                                                                                                                                       19:45:4
29 processes: 1 runnable, 27 sleeping, 1 on CPU
CPU states: 98.6% user,  0.0% nice,  1.4% system,  0.0% interrupt,  0.0% idle
Memory: 705M Act, 6212K Wired, 15M Exec, 638M File, 948M Free
Swap: 2055M Total, 2055M Free

  PID USERNAME PRI NICE   SIZE   RES STATE      TIME   WCPU    CPU COMMAND
14900 www       25    0    54M   45M RUN      125.1H 98.29% 98.29% ruby200      <= これ
    0 root     126    0     0K   21M pgdaemon 134:41  0.00%  0.00% [system]
12206 www       43    0    61M 3684K parked     1:01  0.00%  0.00% httpd
 6014 www       43    0    60M 3220K parked     1:00  0.00%  0.00% httpd
10221 www       85    0    60M 2512K kqueue     0:58  0.00%  0.00% httpd
  318 root      85    0  6032K 6204K pause      0:54  0.00%  0.00% ntpd
20586 www       85    0    60M 2500K pipe_rd    0:54  0.00%  0.00% httpd
  175 root      85    0  5368K 1640K kqueue     0:32  0.00%  0.00% syslogd
 4034 _pflogd   85    0  3320K  980K bpf        0:28  0.00%  0.00% pflogd
  258 root      85    0  7604K 2608K select     0:17  0.00%  0.00% sshd
29511 root      85    0  6612K 2756K select     0:13  0.00%  0.00% httpd
  401 root      85    0  3140K 1268K nanoslp    0:04  0.00%  0.00% cron
29563 root      85    0  5144K 1680K kqueue     0:01  0.00%  0.00% master
    1 root      85    0  3140K 1096K wait       0:01  0.00%  0.00% init
28978 rin       43    0  3368K 1620K CPU        0:00  0.00%  0.00% top
 9359 root      85    0    10M 4580K select     0:00  0.00%  0.00% sshd
13433 rin       85    0  4848K 3512K pause      0:00  0.00%  0.00% zsh
24344 rin       85    0    10M 3408K select     0:00  0.00%  0.00% sshd
  391 root      85    0  6568K 2792K wait       0:00  0.00%  0.00% login
27066 postfix   85    0  5144K 2396K kqueue     0:00  0.00%  0.00% qmgr
24324 postfix   85    0  5136K 2072K kqueue     0:00  0.00%  0.00% pickup
  582 root      85    0  3260K 1512K ttyraw     0:00  0.00%  0.00% sh
 5658 root      85    0  3328K 1504K netio      0:00  0.00%  0.00% pflogd
  407 root      85    0  3152K 1120K ttyraw     0:00  0.00%  0.00% getty
  325 root      85    0  3152K 1120K ttyraw     0:00  0.00%  0.00% getty
  397 root      85    0  3152K 1120K ttyraw     0:00  0.00%  0.00% getty
  366 root      85    0  3184K  976K kqueue     0:00  0.00%  0.00% inetd
  319 root      85    0  3164K  884K kqueue     0:00  0.00%  0.00% powerd
18123 www       83    0  6388K 2160K socket     0:00  0.00%  0.00% httpd
% vmstat 1
 procs    memory      page                       disks   faults      cpu
 r b      avm    fre  flt  re  pi   po   fr   sr f0 c0   in   sy  cs us sy id
 1 0   721168 971852  137   0   0    0    0    0  0  0    6 1499  40 25  1 74
 1 0   721172 971848   43   0   0    0    0    0  0  0   28 2368  50 99  1  0
 1 0   721172 971848   22   0   0    0    0    0  0  0   10 2372  29 93  7  0
 1 0   721172 971848  962   0   0    0    0    0  0  0    2 18679 27 91  9  0
 2 0   721172 971848   24   0   0    0    0    0  0  0    3 2410  23 97  3  0
 1 0   721172 971848   38   0   0    0    0    0  0  0    1 2440  26 98  2  0
 1 0   721172 971848   14   0   0    0    0    0  0  0    2 2427  23 98  2  0
 1 0   721172 971848   34   0   0    0    0    0  0  0    2 2388  25 98  2  0
 1 0   721172 971848  472   0   0    0    0    0  0  0    3 11417 27 95  5  0
 1 0   721172 971848  531   0   0    0    0    0  0  0    6 9717  29 97  3  0
 1 0   721172 971848   43   0   0    0    0    0  0  0    2 2421  25 99  1  0
% iostat 1
      tty              fd0               cd0               sd0             CPU
 tin tout  KB/t  t/s  MB/s   KB/t  t/s  MB/s   KB/t  t/s  MB/s  us ni sy in id
   0    6 0.000    0 0.000  0.000    0 0.000  13.99    4 0.058  25  0  1  0 74
   0  238 0.000    0 0.000  0.000    0 0.000  0.000    0 0.000  97  0  3  0  0
   0   79 0.000    0 0.000  0.000    0 0.000  0.000    0 0.000  93  0  7  0  0
   0  281 0.000    0 0.000  0.000    0 0.000  13.19    8 0.102  99  0  1  0  0
   0   79 0.000    0 0.000  0.000    0 0.000  0.000    0 0.000  99  0  1  0  0
   0  238 0.000    0 0.000  0.000    0 0.000  0.000    0 0.000  100  0  0  0  0
   0   80 0.000    0 0.000  0.000    0 0.000  34.28   47 1.558  99  0  1  0  0
   0   79 0.000    0 0.000  0.000    0 0.000  15.41   11 0.164  94  0  6  0  0
   0  166 0.000    0 0.000  0.000    0 0.000  0.000    0 0.000  97  0  3  0  0
   0   79 0.000    0 0.000  0.000    0 0.000  0.000    0 0.000  99  0  1  0  0

pkgsrc sysutil/systrace をインストール

実行

% systrace -f -p 14900

 :
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
poll([{fd=3, events=POLLIN}, {fd=5, events=POLLIN}], 2, INFTIM) = 209
 :

無限ループしてるので ctrl-c したら ruby プロセスも殺してしまった。

INFTIM は -1

poll - NetBSD Manual Pages

    If timeout is neither zero nor INFTIM (-1), it specifies a maximum inter-
    val to wait for any file descriptor to become ready, in milliseconds.  If
    timeout is INFTIM (-1), the poll blocks indefinitely.  If timeout is
    zero, then poll() will return without blocking.

ruby の thread_pthread.c timer_thread_sleep() らしいんだが、ruby 的にどのメソッドが呼ばれてたかはさすがに分からん。

/**
 * Let the timer thread sleep a while.
 *
 * The timer thread sleeps until woken up by rb_thread_wakeup_timer_thread() if only one Ruby thread is running.
 * @pre the calling context is in the timer thread.
 */
static inline void
timer_thread_sleep(rb_global_vm_lock_t* gvl)
{
    int result;
    int need_polling;
    struct pollfd pollfds[2];

    pollfds[0].fd = timer_thread_pipe[0];
    pollfds[0].events = POLLIN;
    pollfds[1].fd = timer_thread_pipe_low[0];
    pollfds[1].events = POLLIN;

    need_polling = check_signal_thread_list();

    if (gvl->waiting > 0 || need_polling) {
        /* polling (TIME_QUANTUM_USEC usec) */
        result = poll(pollfds, 1, TIME_QUANTUM_USEC/1000);
    }
    else {
        /* wait (infinite) */
        result = poll(pollfds, ARRAY_SIZE(pollfds), -1);        <= これ
    }

_ [艦これ]艦これ 2014夏イベント E-3 掘り

大鯨(初)を釣ったので運を使い果たしたか。