"быстрый дистрибутив"

Вопросы программного кода и архитектуры Linux

Модератор: Olej

tundra37
Писатель
Сообщения: 149
Зарегистрирован: 03 мар 2012, 19:26
Контактная информация:

Re: "быстрый дистрибутив"

Непрочитанное сообщение tundra37 » 14 сен 2012, 09:46

А кто из ядер занимается обработкой прерываний? Если только одно ядро, то все понятно с "умершей" мышкой. Просто на "моей" 4-х процессорной(именно 4 чипа с 2 ядрами) системе на АМД прерывания подведены к одному чипу, а дисковый тракт к другому. Может и здесь что-то подобное.
На Интеле в Винде мышь "умирает" только при полной загрузке 4-х ядер (это уже другой сервер с одним процом), а как с этим на АМД и Линуксе.
Хотя вспомнил. Где в ценной папке /proc есть данные по раскладке/статистике прерываний. Там по-моему только несколько висят на 0-ядре, а остальные на всех происходят, в т.ч. и мышь

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: "быстрый дистрибутив"

Непрочитанное сообщение Olej » 14 сен 2012, 11:03

tundra37 писал(а):Где в ценной папке /proc есть данные по раскладке/статистике прерываний. Там по-моему только несколько висят на 0-ядре, а остальные на всех происходят, в т.ч. и мышь

Код: Выделить всё

bash-4.2$ cat /proc/interrupts 
           CPU0       CPU1       
  0:     322370          0   IO-APIC-edge      timer
  1:          9          0   IO-APIC-edge      i8042
  7:          1          0   IO-APIC-edge      parport0
  8:          1          0   IO-APIC-edge      rtc0
  9:        395          0   IO-APIC-fasteoi   acpi
 12:        156          0   IO-APIC-edge      i8042
 14:       1248          0   IO-APIC-edge      ata_piix
 15:          0          0   IO-APIC-edge      ata_piix
 16:      16176          0   IO-APIC-fasteoi   i915, eth0
 18:      28409          0   IO-APIC-fasteoi   uhci_hcd:usb4, yenta
 19:        646          0   IO-APIC-fasteoi   uhci_hcd:usb5, tifm_7xx1
 20:        309          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
 21:          0          0   IO-APIC-fasteoi   uhci_hcd:usb3
 22:          0          0   IO-APIC-fasteoi   mmc0
 41:      59230          0   PCI-MSI-edge      ahci
 42:      20359          0   PCI-MSI-edge      snd_hda_intel
 43:      45138          0   PCI-MSI-edge      iwl3945
NMI:        203        200   Non-maskable interrupts
LOC:     205360     324612   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:        203        200   Performance monitoring interrupts
IWI:          0          0   IRQ work interrupts
RTR:          0          0   APIC ICR read retries
RES:     376953     321364   Rescheduling interrupts
CAL:       3169       3170   Function call interrupts
TLB:      18729      12987   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:          5          5   Machine check polls
ERR:          0
MIS:          0

Код: Выделить всё

bash-4.2$ cat /proc/cpuinfo | grep 'model name'
model name	: Genuine Intel(R) CPU           T2300  @ 1.66GHz
model name	: Genuine Intel(R) CPU           T2300  @ 1.66GHz

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: "быстрый дистрибутив"

Непрочитанное сообщение Olej » 14 сен 2012, 11:09

Olej писал(а):
tundra37 писал(а):Где в ценной папке /proc есть данные по раскладке/статистике прерываний. Там по-моему только несколько висят на 0-ядре, а остальные на всех происходят, в т.ч. и мышь

Код: Выделить всё

bash-4.2$ cat /proc/interrupts 
           CPU0       CPU1       
  0:     322370          0   IO-APIC-edge      timer
...
[/quote]

А вот как всё то же выглядит на более "умном" современном железе: 
[code]
[olej@nvidia ~]$ cat /proc/interrupts
           CPU0       CPU1       
  0:        121          1   IO-APIC-edge      timer
  1:          4          4   IO-APIC-edge      i8042
  8:          0          1   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 16:        100        141   IO-APIC-fasteoi   uhci_hcd:usb5, nvidia
 17:         94         53   IO-APIC-fasteoi   snd_hda_intel
 18:        408        403   IO-APIC-fasteoi   ata_piix, uhci_hcd:usb4
 19:         14         16   IO-APIC-fasteoi   uhci_hcd:usb3
 23:       5664       3736   IO-APIC-fasteoi   ata_piix, ehci_hcd:usb1, uhci_hcd:usb2
 43:        156         57   PCI-MSI-edge      eth0
 44:        286        222   PCI-MSI-edge      snd_hda_intel
NMI:          9          8   Non-maskable interrupts
LOC:      17458      16620   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          9          8   Performance monitoring interrupts
IWI:          0          0   IRQ work interrupts
RES:       4652       4740   Rescheduling interrupts
CAL:        161        492   Function call interrupts
TLB:        655        641   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:          1          1   Machine check polls
ERR:          0
MIS:          0

Код: Выделить всё

[olej@nvidia ~]$ cat /proc/cpuinfo | grep 'model name'
model name	: Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz
model name	: Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: "быстрый дистрибутив"

Непрочитанное сообщение Olej » 14 сен 2012, 11:14

Olej писал(а):
tundra37 писал(а):Где в ценной папке /proc есть данные по раскладке/статистике прерываний. Там по-моему только несколько висят на 0-ядре, а остальные на всех происходят, в т.ч. и мышь

Код: Выделить всё

bash-4.2$ cat /proc/interrupts 
           CPU0       CPU1       
  0:     322370          0   IO-APIC-edge      timer
...
А вот как всё то же выглядит на более "умном" современном железе:

Код: Выделить всё

[olej@nvidia ~]$ cat /proc/interrupts
           CPU0       CPU1       
  0:        121          1   IO-APIC-edge      timer
  1:          4          4   IO-APIC-edge      i8042
  8:          0          1   IO-APIC-edge      rtc0
  9:          0          0   IO-APIC-fasteoi   acpi
 16:        100        141   IO-APIC-fasteoi   uhci_hcd:usb5, nvidia
 17:         94         53   IO-APIC-fasteoi   snd_hda_intel
 18:        408        403   IO-APIC-fasteoi   ata_piix, uhci_hcd:usb4
 19:         14         16   IO-APIC-fasteoi   uhci_hcd:usb3
 23:       5664       3736   IO-APIC-fasteoi   ata_piix, ehci_hcd:usb1, uhci_hcd:usb2
 43:        156         57   PCI-MSI-edge      eth0
 44:        286        222   PCI-MSI-edge      snd_hda_intel
NMI:          9          8   Non-maskable interrupts
LOC:      17458      16620   Local timer interrupts
SPU:          0          0   Spurious interrupts
PMI:          9          8   Performance monitoring interrupts
IWI:          0          0   IRQ work interrupts
RES:       4652       4740   Rescheduling interrupts
CAL:        161        492   Function call interrupts
TLB:        655        641   TLB shootdowns
TRM:          0          0   Thermal event interrupts
THR:          0          0   Threshold APIC interrupts
MCE:          0          0   Machine check exceptions
MCP:          1          1   Machine check polls
ERR:          0
MIS:          0

Код: Выделить всё

[olej@nvidia ~]$ cat /proc/cpuinfo | grep 'model name'
model name	: Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz
model name	: Pentium(R) Dual-Core  CPU      E6600  @ 3.06GHz
[/quote]

Код: Выделить всё

olej@atom:~$ cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3       
  0:         50          0          0          0   IO-APIC-edge      timer
  1:          8          0          0          0   IO-APIC-edge      i8042
  4:          2          0          0          0   IO-APIC-edge    
  7:          0          0          0          0   IO-APIC-edge      parport0
  8:          1          0          0          0   IO-APIC-edge      rtc0
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 12:        144          0          0          0   IO-APIC-edge      i8042
 14:          0          0          0          0   IO-APIC-edge      ata_piix
 15:          0          0          0          0   IO-APIC-edge      ata_piix
 16:         23          0          0          0   IO-APIC-fasteoi   uhci_hcd:usb5, i915
 18:          0          0          0          0   IO-APIC-fasteoi   uhci_hcd:usb4
 19:       5652       4901          0          0   IO-APIC-fasteoi   ata_piix, uhci_hcd:usb3
 22:        572          0          0          0   IO-APIC-fasteoi   HDA Intel
 23:          0          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2
 27:         92          0        405          0   PCI-MSI-edge      eth0
NMI:          0          0          0          0   Non-maskable interrupts
LOC:       6629       6841       5878       4060   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0   Performance monitoring interrupts
PND:          0          0          0          0   Performance pending work
RES:        258        319        394        391   Rescheduling interrupts
CAL:        806       2412         86         93   Function call interrupts
TLB:        167        141        229        296   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:          2          2          2          2   Machine check polls
ERR:          0
MIS:          0

Код: Выделить всё

olej@atom:~$ cat /proc/cpuinfo | grep 'model name'
model name	: Intel(R) Atom(TM) CPU  330   @ 1.60GHz
model name	: Intel(R) Atom(TM) CPU  330   @ 1.60GHz
model name	: Intel(R) Atom(TM) CPU  330   @ 1.60GHz
model name	: Intel(R) Atom(TM) CPU  330   @ 1.60GHz
Так что раскладка IRQ бывает очень разнообразная :lol:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: "быстрый дистрибутив"

Непрочитанное сообщение Olej » 14 сен 2012, 11:24

Olej писал(а):Так что раскладка IRQ бывает очень разнообразная :lol:
tundra37 писал(а):А кто из ядер занимается обработкой прерываний? Если только одно ядро, то все понятно с "умершей" мышкой.
...
На Интеле в Винде мышь "умирает" только при полной загрузке 4-х ядер (это уже другой сервер с одним процом), а как с этим на АМД и Линуксе.
Хотя раскладка IRQ к показанному примеру отношения не имеет:
- аппаратно IRQ в любом случае происходят, и обработчик "нижней половины" (то, что называют ISR) отрабатывает ... это без запрета линии IRQ никто отменить не может...
- но при запуске N потоков на N процессорах, с дисциплиной планирования той, что в Linux пытаются изобразить "как real-time" ;-) - загрузка каждого из N процессоров прыгнет до 100%
- при этом (предполагаю), что и запланированные из ISR обработчики IRQ "верхней половины" (тасклеты, отложенные прерывания) - не могут получить ни кванта времени
- ... но это и не важно: потому как процессы-потребители таких данных от прерываний (мышки) - X11, оконный менеджер, окно, терминал в окне... - не смогут получить ни кванта времени до тех пор, пока "реалтаймы" не освободят хотя бы один процессор из N.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: "быстрый дистрибутив"

Непрочитанное сообщение Olej » 03 янв 2013, 17:38

По поводу дистрибутивов быстрых и не быстрых, а также железа сильного и слабого, на котором крутится дистрибутив быстро ;-) - зашёл разговор вот здесь ещё: Помогите подобрать дистрибутив !!! (вот от этого места и далее).

Там сформулировались некоторые факторы, которые могли бы делать дистрибутив выглядящим "быстрым" ;-)
Чем вы определите "лёгкость" своего дистрибутива? :

1. ядром. Ядро не бывает "лёгким" или "тяжёлым" (дистрибьюторостроители вообще в большинстве не понимают что там в ядре), ядро берётся с kernel.org, и может быть только свежим или старым.

2. сервисы (службы, демоны). Это всё определяется настройками. Да, в каких-то дистрибутивах по дефаулту запущенных служб может быть больше ... - так остановите их.

3. система X11. Точнее DE или WM: KDE, GNOME и т.д. и т.п. Так в любом дистрибутиве можно использовать любое оконное окружение, даже устанавливая их, в большинстве, пакетом из родного репозитария дистрибутива.

Нет никаких других различий (подсистем), делающих дистрибутив "лёгким"-"тяжёлым", "быстрым"-"медленным"!
Что можно было бы продолжить и здесь обсудить далее ... но уже в сугубо с технической точки зрения.

Ответить

Вернуться в «Linux изнутри»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей