Драйверы с открытым исходным кодом становятся довольно хорошими в эти дни. У меня не было проблемы с аппаратными средствами AMD или Intel.
Intel
Я слышу, что старые довольно плохи, но мой G4500HD делает все, в чем я нуждаюсь хорошо. Видеоускорение могло быть лучше все же. Нет собственного драйвера для Intel также, Вашим единственным выбором является открытый исходный код. Составленный 3D рабочий стол в KDE работает отлично на моем ноутбуке, который имеет процессор Intel.
AMD/ATi
Прямо сейчас более старые карты лучше поддерживаются, чем новые. Если бы Вы могли бы так или иначе получить x1800 или что-то от того же поколения, которое, вероятно, было бы лучшим. r300g
драйвер получает больше технической разработки, чем r600g
. Но это вовсе не значит r600g
плохо, на самом деле это является большим! Это находится просто несколько позади драйвера для более старых аппаратных средств. AMD имеет собственный драйвер для новых аппаратных средств, но по моему опыту Вы хотите избежать его; это довольно плохо. Аппаратные средства, покрытые r300g
не поддерживается тем драйвером, таким образом, открытый драйвер является Вашей единственной опцией там. И как процессор Intel я имею, мой Radeon 4850 выполняет составленный рабочий стол в KDE хорошо.
В данный момент я не рекомендовал бы серию HD6000. 6900 не имеют никакой поддержки вообще в открытом драйвере, и у других есть основная поддержка. Пойдите для HD5000 или HD4000.
Nvidia
У них есть действительно хороший собственный драйвер, но открытый драйвер борется вперед. Это - улучшение все время, но Nvidia не делает ничего для помощи разработчикам. По крайней мере, AMD выручает немного для их аппаратных средств.
Преимущество для наличия открытого драйвера состоит в том, что оно будет работать из поля в любом дистрибутиве. При установке Fedora все будет работать включая двойной экран и 3D. Собственные являются болезненными для установки. Ни один из них правильно не настроил мои двойные экраны. Было легче установить с Nvidia, которая не говорит многое, потому что блоб AMD был просто ужасен в этом. Кроме того, каждый раз, когда Вы обновляете ядро, необходимо переустановить драйвер. Большинство дистрибутивов заботится об этом, если Вы устанавливаете в - repo версия, но если Вы не делаете это является раздражающим, чтобы загрузиться однажды утром и понять обновление ядра, и теперь X.org не работает.
Если Вы не планирование того, чтобы играть в 3D игры, или Intel или драйверы AMD являются лучшими. Драйвер AMD более современен, чем Intel один, он использует архитектуру Gallium3D в Мезаструктуре (это что g
обозначает в r600g
), но они оба сделали задание.
Отправка единственного пакета и ожидание ответа будут одним из самых быстрых путей, и ping является прекрасным способом сделать это. На самом деле, в зависимости от Вашего варианта использования, я утверждал бы, что это слишком быстро, так как это действительно не говорит Вам, если система на самом деле делает что-либо полезное, просто что сетевая подсистема ядра жива и настроена.
Но принятие этого достаточно хорошо, можно сделать некоторые улучшения. Во-первых, Вы могли использовать -W1
уменьшить тайм-аут ping к одной секунде. Во-вторых, Вы могли заставить свой сценарий проверить с помощью ping-запросов различные хосты асинхронно (в фоновом потоке) и проверить результаты по мере необходимости вместо ожидания.
Поочередно, можно заново продумать подход и иметь регистрацию удаленных систем так или иначе, когда они произошли, и если система не зарегистрировалась, можно предположить, что это снижается.
Это - то, для чего был разработан fping. http://fping.sourceforge.net/
Необходимо проанализировать вывод впоследствии вместо того, чтобы полагаться на код возврата, но это намного быстрее, чем выполнение нормального ping.
Это только работало бы на один или два компьютера, но если Вы подключаете их непосредственно к компьютеру, ответственному за проверку их состояния, можно использовать ethtool
видеть, активен ли канал или нет.
ethtool {network_interface} | grep "Link detected" | cut -f 3 -d ' '
возвратится yes
если машина подключена, и no
если это не.
– LawrenceC
21.02.2011, 19:04
Что Вы могли сделать это, проверяют с помощью ping-запросов широковещательный адрес, который должен заставить все компьютеры проверять с помощью ping-запросов назад. Затем Вы могли перепроверить этот список против того, что Вы имеете в SQLite, чтобы гарантировать, что все компьютеры возросли.
Другой затем, что ping является, вероятно, самым быстрым способом гарантировать компьютер, бодрствует в сети. Как упомянуто другим ответом это не обеспечивает действительно полезных данных. Если у Вас есть способность установить сценарии, можно добавить cronjob, чтобы проверить с помощью ping-запросов центральный сервер, выполнить задачу или просто повторить список процессов к центральному серверу, который зарегистрирует запрос. Затем просто проверка, которая скажет Вам, если у Вас будут какие-либо проблемы без потребности вручную проверить каждый раз.
Ганглии используют многоадресный трафик для контроля многих хостов в кластере, возможно, Вы могли использовать что-то подобное? Это предполагает, что Ваши сетевые аппаратные средства позволяют многоадресный трафик между всеми хостами и Вашей системой контроля.
Я имел ту же проблему и придумал следующее (быстрый и грязный) сценарий. Это по существу выпускает все ping как отдельные задания параллельно и просканирует всю/24 подсеть через 3 секунды; обратите внимание, что по некоторым причинам я не потрудился узнавать, что я не мог использовать код результата ping здесь, но grep-v сделал задание:
#!/bin/bash
case $# in
1)
case $1 in
[1-9]*)
echo
echo Systems active in subnet: $1
for (( K = 1 ; K < 255 ; K=$K+1 )); do
# grep -v delivers 0 on no matches
echo -ne "testing:" $1$K "... \r"
(if ping -c 1 -w 1 -n $1$K 2>&1 | grep -q '64 bytes' ; then
echo $1$K alive " "
fi) &
done
sleep 3
echo " "
exit 0
;;
esac;;
esac
В C,
/* count = 1, wait interval = 1 second, no name lookup, */
/* 10 data bytes, 1 second timeout, 200 millisecond wait time */
sprintf(command,"ping -c1 -i1 -n -s10 -t1 -W200 %u"
, connection[port].IPAddress);
err = system(command);
/* err == 0 means OK */
Я обнаружил, что fping -r0...
обеспечивает самый быстрый ответ.
Параметр-r
(повторных попыток )кажется более быстрым, чем аналогичный-c
(счетчик ). Использование -r0
приводит к отправке всего одного эхо-запроса, а вывод значительно сокращается по сравнению с другими вариантами.
В моей системе...
fping -r0 PRINTER LX00 LX01 LX02 LX03 HA01 2>&1
Результат...
LX00 is alive
LX02 is alive
HA01 is alive
ICMP Host Unreachable from 192.168.1.5 for ICMP Echo sent to LX01
PRINTER is unreachable
LX01 is unreachable
LX03 is unreachable
Небольшой массаж, чтобы избавиться от ICMP
сообщения (с ), дает мне...
fping -r0 PRINTER LX00 LX01 LX02 LX03 HA01 2>&1 | grep ' is ' | sort
HA01 is alive
LX00 is alive
LX01 is unreachable
LX02 is alive
LX03 is unreachable
PRINTER is unreachable
Что касается скорости, то fping
на этом старом Intel Dual Core -с тактовой частотой 1,8 ГГц и 4 ГБ ОЗУ…
time fping -r0 PRINTER LX00 LX01 LX02 LX03 HA01 2>&1
LX00 is alive
LX02 is alive
HA01 is alive
PRINTER is unreachable
LX01 is unreachable
LX03 is unreachable
real 0m0.554s
user 0m0.000s
sys 0m0.000s
А grep
и sort
, похоже, добавляют ко времени только 0,001 -0,004 с...
time fping -r0 PRINTER LX00 LX01 LX02 LX03 HA01 2>&1 | grep ' is ' | sort
HA01 is alive
LX00 is alive
LX01 is unreachable
LX02 is alive
LX03 is unreachable
PRINTER is unreachable
real 0m0.558s
user 0m0.000s
sys 0m0.000s
ПРИМЕЧАНИЯ
ICMP
появляется не при каждом запуске.2>&1
необходим для предотвращения сообщения ICMP
от . отображается в выводе, так как он отправляется на stderr
вместо stdout
.