насколько высокая загрузка ЦП на сервере Linux - PullRequest
3 голосов
/ 06 января 2011

Я выполняю несколько заданий PHP, которые получают 100-тысячные данные из веб-службы и вставляют их в базу данных.Эти задания занимают нагрузку на процессор сервера.

Мой вопрос: сколько он считается высоким?

Когда я выполняю команду "top" на сервере linux, это выглядит как 77% .. Это увеличится до 100%, если я буду выполнять больше заданий одновременно.Мне кажется, что он высок (более 100% означает, что он работает на втором процессоре?)

28908 mysql     15   0  152m  43m 5556 S 77.6  4.3   2099:25 mysqld             
 7227 apache    15   0  104m  79m 5964 S  2.3  7.8   4:54.81 httpd 

На этом сервере также размещены веб-страницы / проекты.Почасовая работа, влияющая на сервер, а также на время загрузки другого веб-проекта.

Если высокий, есть ли способ повысить его эффективность на ЦП?

Кто-нибудь может просветить

Ответы [ 5 ]

1 голос
/ 06 января 2011

Лучшим показателем является средняя нагрузка , если я упрощусь, это количество ожидающих задач из-за недостатка ресурсов.

Вы можете получить к нему доступ с помощью команды uptimeнапример: 13:05:31 up 6 days, 22:54, 5 users, load average: 0.01, 0.04, 0.06.3 числа в конце являются средними значениями загрузки за последнюю минуту, последние 5 минут и последние 15 минут.Если он достигает 1.00 (независимо от количества ядер), то это что-то его ждет .

0 голосов
/ 16 января 2011

Ницца не сильно поможет, так как MySQL занимает ваш процессор, положить хороший PHP-клиент, как в

nice -10 php /home/me/myjob.php

не будет иметь существенного значения.

Лучше разделить работу так, чтобы мелкие детали назывались вашим php-скриптом из cron и создайте его как

<?
ini_set("max_execution_time", "600")
//
//1. get the file from remote server, in chunks to avoid net saturation
$fp = fopen('http://example.org/list.txt');
$fp2 = fopen('local.txt','w');
while(!feof($fp)) {
  fwrite($fp2,fread($fp,10000));
  sleep(5);
}
fclose($fp/fp2);

while(!eof(file) {
  //read 1000 lines
  //do insert..
  sleep(10);
}
//finished, now rename to .bak, log success or whatever...
0 голосов
/ 06 января 2011

Вы всегда можете выполнить приятные задачи

http://unixhelp.ed.ac.uk/CGI/man-cgi?nice

С помощью команды nice вы можете придавать процессам более или менее приоритетный характер

0 голосов
/ 06 января 2011

Эти задания занимают загрузку ЦП сервера. У меня вопрос, сколько это считается высоким?

Это совершенно субъективно. На вычислительных узлах загрузка ЦП почти всегда составляет 100% на ядро. Это высоко? Нет, совсем нет, это правильное использование оборудования, которое было куплено за деньги.

0 голосов
/ 06 января 2011

Я бы сказал, что 77% определенно высоки.

Вероятно, есть много способов сделать работу более эффективной (рекурсивный импорт), но не так много информации.

БыстрыйИсправление будет вызывать сценарий с хорошим cmd, и добавить несколько снов, чтобы растянуть нагрузку с течением времени.

Я полагаю, что вы также насыщаете сеть во время импорта, так что вы можете разделить работу, это предотвратит вашсайт от срывов.

привет, / т

...