2012-07-02 5 views
2

С нескольких дней, в системе, которая была в разработке около года, у меня есть постоянная загрузка процессора из игры! сервер. У меня есть два сервера, один активный и один в качестве горячего резерва. Раньше сервер hot-spre не показывал нагрузки или неаккуратную нагрузку. Но теперь он потребляет постоянный 50-110% процессор (используя верхнюю часть на Linux).Загрузка процессора с помощью игрового фрейма

Есть ли простой способ узнать, в чем причина? Я не вижу этого поведения на своем MacBook при отладке (обычно 0,1-1%). Это то, что произошло только в последние несколько дней, насколько мне известно.

Это статус печати горячего резерва. Как можно видеть, не диспетчеры не опрашиваются отдельно от плановых заданий (которые не выполняют на этом сервере из-за флага, но запускаются):

~  _   _ 
~ _ __ | | __ _ _ _| | 
~ | '_ \| |/ _' | || |_| 
~ | __/|_|\____|\__ (_) 
~ |_|   |__/ 
~ 
~ play! 1.2.4, http://www.playframework.org 
~ framework ID is prod-frontend 
~ 
~ Status from http://localhost:xxxx/@status, 
~ 
Java: 
~~~~~ 
Version: 1.6.0_26 
Home: /usr/lib/jvm/java-6-sun-1.6.0.26/jre 
Max memory: 64880640 
Free memory: 11297896 
Total memory: 29515776 
Available processors: 2 

Play framework: 
~~~~~~~~~~~~~~~ 
Version: 1.2.4 
Path: /opt/play 
ID: prod-frontend 
Mode: PROD 
Tmp dir: /xxx/tmp 

Application: 
~~~~~~~~~~~~ 
Path: /xxx/server 
Name: iDoms Server 
Started at: 07/01/2012 12:05 

Loaded modules: 
~~~~~~~~~~~~~~ 
secure at /opt/play/modules/secure 
paginate at /xxx/server/modules/paginate-0.14 

Loaded plugins: 
~~~~~~~~~~~~~~ 
0:play.CorePlugin [enabled] 
100:play.data.parsing.TempFilePlugin [enabled] 
200:play.data.validation.ValidationPlugin [enabled] 
300:play.db.DBPlugin [enabled] 
400:play.db.jpa.JPAPlugin [enabled] 
450:play.db.Evolutions [enabled] 
500:play.i18n.MessagesPlugin [enabled] 
600:play.libs.WS [enabled] 
700:play.jobs.JobsPlugin [enabled] 
100000:play.plugins.ConfigurablePluginDisablingPlugin [enabled] 

Threads: 
~~~~~~~~ 
Thread[Reference Handler,10,system] WAITING 
Thread[Finalizer,8,system] WAITING 
Thread[Signal Dispatcher,9,system] RUNNABLE 
Thread[[email protected],5,main] WAITING 
Thread[Timer-0,5,main] TIMED_WAITING 
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main] TIMED_WAITING 
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main] TIMED_WAITING 
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main] TIMED_WAITING 
Thread[jobs-thread-1,5,main] TIMED_WAITING 
Thread[jobs-thread-2,5,main] TIMED_WAITING 
Thread[jobs-thread-3,5,main] TIMED_WAITING 
Thread[New I/O server boss #1 ([id: 0x7065ec20, /0:0:0:0:0:0:0:0:9001]),5,main] RUNNABLE 
Thread[DestroyJavaVM,5,main] RUNNABLE 
Thread[New I/O server worker #1-3,5,main] RUNNABLE 

Requests execution pool: 
~~~~~~~~~~~~~~~~~~~~~~~~ 
Pool size: 0 
Active count: 0 
Scheduled task count: 0 
Queue size: 0 

Monitors: 
~~~~~~~~ 
controllers.ReaderJob.doJob(), ms.   ->  114 hits;  4.1 avg;  0.0 min; 463.0 max; 
controllers.MediaCoderProcess.doJob(), ms. ->  4572 hits;  0.1 avg;  0.0 min; 157.0 max; 
controllers.Bootstrap.doJob(), ms.   ->  1 hits;  0.0 avg;  0.0 min;  0.0 max; 

Datasource: 
~~~~~~~~~~~ 
Jdbc url: jdbc:mysql://xxxx 
Jdbc driver: com.mysql.jdbc.Driver 
Jdbc user: xxxx 
Jdbc password: xxxx 
Min pool size: 1 
Max pool size: 30 
Initial pool size: 3 
Checkout timeout: 5000 

Jobs execution pool: 
~~~~~~~~~~~~~~~~~~~ 
Pool size: 3 
Active count: 0 
Scheduled task count: 4689 
Queue size: 3 

Scheduled jobs (4): 
~~~~~~~~~~~~~~~~~~~~~~~~~~ 
controllers.APNSFeedbackJob run every 24h. (has never run) 
controllers.Bootstrap run at application start. (last run at 07/01/2012 12:05:32) 
controllers.MediaCoderProcess run every 15s. (last run at 07/02/2012 07:10:46) 
controllers.ReaderJob run every 600s. (last run at 07/02/2012 07:05:36) 

Waiting jobs: 
~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
controllers.MediaCoderProcess will run in 2 seconds 
controllers.APNSFeedbackJob will run in 17672 seconds 
controllers.ReaderJob will run in 276 seconds 
+2

Является ли ваш сервер под Linux? Вы пытались перезагрузить сервер? потому что вас может поразить ошибка ядра «leap second» Linux (http://it.slashdot.org/story/12/07/01/1920217/leap-second-bug-causes-crashes) –

+0

Spot-on! После перезагрузки все возвращается в норму. Если вы хотите ответить на вопрос, я приму ответ. –

+0

Сделано! Благодаря :-) –

ответ

4

, если ваш сервер работает под Linux, вы можете быть поражены на Leap Second bug, который появляется на прошлой неделе.

Эта ошибка влияет на ядро ​​Linux (управление потоками), поэтому приложение, которое использует потоки (как JVM, mysql и т. Д.), Может потреблять высокую нагрузку на процессор.

Смежные вопросы