Как узнать информацию о процессоре (cpu) в linux

2) Iostat

The iostat command list CPU utilization, device utilization and network file system utilization. This utility display system’s average CPU utilization since the last reboot. Running the following command without any options displays all the three reports.

To list the individual report use -c, -d and -h switch for CPU utilization, device utilization and network file system utilization. The following command will break the CPU utilization into user processes, system processes, I/O wait and idle time.

The following command will display extended statistics (-x), the number of times (-t) each report should be displayed for CPU utilization (-c).

Что такое процесс?

Начнем с того, что разберемся в терминах. По сути, процесс — это каждая программа. Как я уже говорил для каждой запускаемой программы создается отдельный процесс. В рамках процесса программе выделяется процессорное время, оперативная память и другие системные ресурсы. У каждого процесса есть свой идентификатор, Proccess ID или просто PID, по ним, чаще всего и определяются процессы Linux. PID определяется неслучайно, как я уже говорил, программа инициализации получает PID 1, а каждая следующая запущенная программа — на единицу больше. Таким образом PID пользовательских программ доходит уже до нескольких тысяч.

На самом деле, процессы Linux не настолько абстрактны, какими они вам сейчас кажутся. Их вполне можно попытаться пощупать. Откройте ваш файловый менеджер, перейдите в корневой каталог, затем откройте папку /proc. Видите здесь кучу номеров? Так вот это все — PID всех запущенных процессов. В каждой из этих папок находится вся информация о процессе.

Например, посмотрим папку процесса 1. В папке есть другие под каталоги и много файлов. Файл cmdline содержит информацию о команде запуска процесса:

Поскольку у меня используется система инициализации Systemd, то и первый процесс запускается для нее. С помощью каталога /proc можно сделать все. Но это очень неудобно, особенно учитывая количество запущенных процессов в системе. Поэтому для реализации нужных задач существуют специальные утилиты. Перейдем к рассмотрению утилит, которые позволяют реализовать управление процессами в Linux.

Отображение базовой информации о системе в Debian 10

Чтобы узнать основную информацию о вашей системе, вам необходимо ознакомиться с утилитой командной строки uname-short для имени unix.

Команда uname

Команда uname поставляется с несколькими переключателями. Базовая команда, как описано ниже, возвращает только имя ядра:

$ uname

Output:

Как видите, команда uname при использовании без каких-либо ключей возвращает только имя ядра, т.е. Linux для моей системы.

Kernel Name

Когда вы точно хотите, чтобы команда напечатала имя ядра, вы будете использовать следующую команду:

$ uname -s

Output:

В приведенном выше выводе Linux отображается как имя моего ядра.

Kernel Release

Чтобы напечатать информацию о выпуске вашего ядра, используйте следующую команду:

$ uname -r

Output:

Приведенная выше команда отобразила номер выпуска моей Linux

Kernel-Version

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

$ uname -v

Output:

В приведенном выше выводе показан номер версии моего ядра.

Network Node Hostname

Вы можете использовать следующую команду для печати сетевого имени хоста вашего узла:

$ uname -n

Вы также можете использовать следующую команду для той же цели, поскольку она более удобна для пользователя:

$ uname --nodename

Output:

Обе команды будут отображать одинаковые выходные данные

Обратите внимание, что имя хоста и имя узла могут не совпадать для систем, отличных от Linux

Имя оборудования машины

Чтобы узнать аппаратную архитектуру системы, над которой вы работаете, используйте следующую команду:

$ uname --m

Выход:

Выход x86_64 означает, что я использую 64-разрядную версию. архитектура. Вывод i686 будет означать, что пользователь находится в 32-битной системе.

Тип процессора

Чтобы узнать тип используемого вами процессора, используйте следующую команду:

$ uname -p

Вывод:

Хотя я использую 64-разрядный процессор, но команда не смогла получить его Информация.

Чтобы узнать аппаратную платформу, которую вы используете, используйте следующую команду:

$ uname -i

Output:

Operating System

Следующая команда сообщит вам имя операционной системы. вы используете:

$ uname -o

Вывод:

Мой компьютер Debian отображал вышеуказанный вывод для моей системы.

Отображение всей системной информации

Приведенные выше команды отображали системную информацию в соответствии с типом используемого переключателя.В случае, если вы хотите просмотреть всю системную информацию одновременно, используйте следующую команду:

$ uname -a

Output:

Вы можете видеть, что вышеприведенный вывод показывает полный список системной информации для пользователя.

Создание отличной приборной панели с Grafana

Теперь, когда наши метрики хранятся в Prometheus, нам просто нужно создать панель управления Grafana , чтобы визуализировать их.

Мы будем использовать новейшие панели, доступные в Grafana v6.2: вертикальные и горизонтальные шкалы , закругленные шкалы и классические линейные диаграммы.

Для вашего удобства я снабдил последнюю сводку цифрами от 1 до 4.

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

1 — Строительство круглых датчиков

Вот более подробное представление о том, какие округлые шкалы на нашей панели.

А пока мы собираемся сосредоточиться на использовании ЦП нашими процессами, поскольку его можно легко отразить для использования памяти.

С помощью этих панелей мы собираемся отслеживать два показателя: текущее использование ЦП всеми нашими процессами и среднее использование ЦП.

Чтобы получить эти метрики, мы собираемся выполнять запросы PromQL в нашем экземпляре Prometheus?

PromQL — это язык запросов, разработанный для Prometheus .

Аналогично тому, что вы нашли в экземплярах InfluxDB с InfluxQL (или IFQL), запросы PromQL могут агрегировать данные с использованием таких функций, как сумма, среднее значение и стандартное отклонение.

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

a — Получение текущего общего использования ЦП

Чтобы получить текущее общее использование ЦП, мы собираемся использовать функцию суммы PromQL.

В данный момент общее использование ЦП — это просто сумма отдельных использований.

Вот шпаргалка:

b — Получение средней загрузки ЦП

Не так много работы для среднего использования ЦП, вы просто собираетесь использовать  функцию avg в PromQL . Вы можете найти шпаргалку ниже.

2 — Построение горизонтальных манометров

Горизонтальные датчики — одно из последних дополнений Grafana v6.2.

Наша цель с этой панелью — выявить 10 самых ресурсоемких процессов нашей системы.

Для этого мы собираемся использовать функцию topk, которая извлекает верхние k элементов для метрики.

Подобно тому, что мы делали раньше, мы собираемся определить пороги, чтобы получать информацию, когда процесс потребляет слишком много ресурсов.

3 — Строительство вертикальных датчиков

Вертикальные датчики очень похожи на горизонтальные, нам нужно только настроить параметр ориентации на панели визуализации Grafana.

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

Вот шпаргалка

Потрясающе ! Пока мы добились большого прогресса, осталось провести одну панель.

4 — Построение линейных графиков

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

Этот график может быть особенно полезен, когда:

  • В прошлом у вас был сбой, и вы хотите выяснить, какие процессы были активны в то время.
  • Определенный процесс умер, но вы хотите увидеть его поведение прямо перед тем, как это произошло.

Когда дело доходит до исследования по устранению неполадок, честно говоря, потребуется целая статья (особенно с недавним добавлением Grafana Loki).

Хорошо, вот последняя шпаргалка !

Оттуда у нас есть все панели, которые нам нужны для нашей окончательной панели инструментов.

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

Мониторинг общего потребления памяти

Мониторить общее потребление памяти и процессора с помощью top

Обратите внимание, на выдачу вашего top. В

CentOS

у вас может стоять по умолчанию KiB а в

Ubuntu

MiB. Если предполагается делать какие-то вычисления — нужно разобраться с тем, что же выдаёт top

Если предполагается делать какие-то вычисления — нужно разобраться с тем, что же выдаёт top

top — 14:41:49 up 20:18, 2 users, load average: 0.51, 0.32, 0.22
Tasks: 386 total, 1 running, 385 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.8 us, 1.0 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 8008504 total, 4713352 free, 1021040 used, 2274112 buff/cache
KiB Swap: 8257532 total, 8257532 free, 0 used. 6646096 avail Mem

Из руководства по

top

можно сделать следующие выводы:

  1. Использованная CPU это 100 минус значение id (idle)
  2. Использованная память это значение used в строке, которая начинается с
    KiB Mem
us, user time running un-niced user processes
sy, system time running kernel processes
ni, nice time running niced user processes
id, idle time spent in the kernel idle handler
wa, IO-wait time waiting for I/O completion
hi time spent servicing hardware interrupts
si time spent servicing software interrupts
st time stolen from this vm by the hypervisor

Исходя из этих соображений, можно воспользоваться

sed

,

awk

и

bc

чтобы вытащить из выдачи top нужные величины и вычислить расход ресурсов.

Комментарии к скрипту

  1. Строка 1: объявление bash скрипта
  2. Строка 2:
  3. Значение перед id нужно присвоить переменной IDLE
  4. top запускается в batch режиме (-b) один раз (-n 1)
  5. grep выделяет из выдачи top строку с %Cpu(s)
  6. Первое условие sed отбрасывается всё, что правее id, включая сам id
  7. Второе условие sed отбрасывает всё, что слева от последней запятой
  8. Строка 3:
  9. top запускается в batch режиме (-b) один раз (-n 1)
  10. awk находит нужный столбец
  11. Строка 4:
  12. bc помогает вычислить разность чисел
  13. Строка 5:
  14. Дата, расход ЦПУ и расход памяти записываются в log.txt

Use /proc/cpuinfo to find out how many CPUs are there in Linux

The lscpu command gathers CPU architecture information from sysfs, /proc/cpuinfo and other sources. To view use the cat command and more command as follows:
OR
Let us print cpu thread count:

Patreon supporters only guides

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)

Join Patreon ➔

9) Glances

Glances is a cross-platform curses-based monitoring tool written in Python that uses the psutil library to fetch data from the system. Glance monitor CPU, Load Average, Memory, Network Interfaces, Disk I/O, Processes and File System spaces utilization.

Install glances in your system with the following command.

In Ubuntu:

In Centos:

You can run Glances in 3 modes-

1. Standalone

If you want to monitor your local machine(Standalone), simply run-

2. Client/Server

If you want to remotely monitor a machine then execute the following on the server.

and then from the client, execute the following command.

where @server is the IP address or hostname of the server.

3. Webserver

Run the glances in web server mode by executing the following command in the terminal.

To change the refresh rate of the page, just add the period in seconds at the end of the URL. For example, to refresh the page every 30 seconds, append 10 to the glances server URL from the browser.

Как получить информацию о файловой системе Linux

Что бы получить информацию о системных разделах используйте команду fdisk

Shell

fdisk -l
Disk /dev/sda: 1000 GB, 1000204887016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0xcee8ad92

Device Boot Start End Blocks Id System
/dev/sda1 1 1953425167 976762583+ ee GPT
Partition 1 does not start on physical sector boundary.

1
2
3
4
5
6
7
8
9
10
11

fdisk-l

Disk/dev/sda1000GB,1000204887016bytes

255heads,63sectors/track,121601cylinders,total1953525168sectors

Units=sectors of1*512=512bytes

Sector size(logical/physical)512bytes/4096bytes

I/Osize(minimum/optimal)4096bytes/4096bytes

Disk identifier0xcee8ad92

Device Boot      Start         EndBlocks   IdSystem

/dev/sda111953425167976762583+ee  GPT

Partition1does notstart on physical sector boundary.

Как узнать архитектуру процессора вашего телефона Android

Если вы любите загружать приложения на свой телефон Android, возможно, вы столкнулись с тем, что некоторые приложения имеют разные сборки, что приводит к путанице в отношении того, какую сборку загружать и устанавливать на вашем телефоне. Эта путаница возникает из-за большого числа производителей процессоров для рынка Android. У нас есть Qualcomm, MediaTek, Samsung, Huawei и некоторые другие мелкие производители, которые разрабатывают чипсеты для рынка Android. Даже у одного и того же производителя есть разные категории чипсетов, чтобы удовлетворить потребности разных людей.

Разработчики приложений разрабатывают разные версии одного и того же приложения, чтобы они бесперебойно работали на разных устройствах с разными аппаратными конфигурациями. По этой причине разработчики из Google LLC разработали 22 варианта приложения YouTube. Таких примеров много. Если вы опытный пользователь Android, вы должны знать следующее:

  1. Архитектура, на которой разработан процессор вашего устройства
  2. Версия Android, на которой работает ваше устройство.

Зная версию Android, на которой работает ваш телефон, довольно просто ( Настройки — О телефоне — Версия Android ), вам необходимо выполнить несколько шагов, чтобы узнать архитектуру, на которой разработан процессор вашего телефона. Как правило, есть три архитектуры, на которых основаны все процессоры Android Phone.

  • ARM — это наиболее распространенная архитектура, на которой разработаны процессоры для телефонов Android. Если процессор вашего телефона основан на ARM, это означает, что ваш телефон работает под управлением 32-разрядной операционной системы. Это довольно популярно в начальных и средних телефонах Android. Это энергоэффективные процессоры с низким энергопотреблением.
  • ARM64 — Новые процессоры основаны на архитектуре ARM64. Он поддерживает 64-битную операционную систему и обладает высокой вычислительной мощностью. Многие производители телефонов принимают эту новую архитектуру, и, похоже, она станет стандартом в ближайшем будущем. Все основные производители чипсетов в экосистеме Android разрабатывают процессоры на основе архитектуры ARM64.
  • Процессоры x86 — x86 имеют более высокую вычислительную мощность, чем любой другой аналог ARM, но их очень мало на рынке. Как правило, процессоры от Intel основаны на этой архитектуре. Они не оптимизированы для более длительного потребления батареи.

Теперь нужно помнить, что приложение или пользовательское ПЗУ, созданное для определенной архитектуры, не оптимизировано для другой и поэтому не рекомендуется устанавливать, если ваше оборудование не совместимо. Однако большинство приложений, разработанных для 32-разрядных систем, могут работать в 64-разрядных системах.

Достаточно сказать, теперь следуйте этим шагам, чтобы узнать о процессоре вашего телефона.

  • ARM: ARMv7 или armeabi
  • ARM64: AArch64 или arm64
  • x86: x86 или x86abi

Вот и все.

Вы также можете попробовать следующие приложения, которые выполняют ту же функцию, что и Droid Hardware Info.

Информация об оперативной памяти

1. Файл /proc/meminfo (Linux)

Команда:

cat /proc/meminfo

Пример ответа:

MemTotal:        8010284 kB
MemFree:         1058580 kB
MemAvailable:    2791616 kB
Buffers:            1884 kB
Cached:          1754092 kB
SwapCached:       122280 kB
Active:          4330296 kB
Inactive:        2006792 kB
Active(anon):    3623768 kB
Inactive(anon):   983120 kB
Active(file):     706528 kB
Inactive(file):  1023672 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       1048572 kB
SwapFree:         597684 kB
Dirty:                20 kB
Writeback:             0 kB
AnonPages:       4466532 kB
Mapped:            92808 kB
Shmem:             25776 kB
Slab:             408732 kB
SReclaimable:     308820 kB
SUnreclaim:        99912 kB
KernelStack:        7312 kB
PageTables:        23276 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5053712 kB
Committed_AS:    3770324 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      159328 kB
VmallocChunk:   34359341052 kB
HardwareCorrupted:     0 kB
AnonHugePages:   3248128 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      257984 kB
DirectMap2M:     8130560 kB

* чаще всего, самое важное:

  • MemTotal — общий объем оперативной памяти.
  • MemFree — объем памяти, который не используется системой.
  • Buffers — память, которая в данным момент ожидает записи на диск.
  • Cached — объем, задействованный под кэш чтения с диска.
  • MemAvailable — объем памяти, доступной в распределители без необходимости обмена.
  • SwapTotal — объем файла подкачки.
  • SwapFree — свободный объем файла подкачки.

* Объем используемой памяти = MemTotal – MemFree — Cached — Buffers.

Для перевода килобайт в гигабайты можно воспользоваться онлайн калькулятором.

2. free (Linux)

Данная команда позволяет получить информацию об использовании памяти в удобной таблице. Для еще большего удобства, мы выведем ее с помощью дополнительного параметра -h:

free -m

Пример ответа:

              total        used        free      shared  buff/cache   available
Mem:           3,7G        568M        378M        193M        2,8G        2,6G
Swap:          4,0G         94M        3,9G

sysctl hw.physmem

Пример ответа:

hw.physmem: 2123677696

4. dmesg

Работает на BSD и Linux:

dmesg | grep memory

Итог:

real memory  = 2147483648 (2048 MB)
avail memory = 2042109952 (1947 MB)

5. Другие команды

Для получения информации по оперативной памяти также можно использовать команды:

vmstat -s

top

htop

* для htop необходима установка одноименной утилиты.

ARM-процессоры на удаление

Список, составленный Арндом Бергманом, включает 14 процессоров (и их семейств, например, EFM32) с архитектурой ARM, давно не обновлявшихся и потому предложенных к удалению. Судьба 13 из них пока не решена – разработчики определятся с ней в ближайшее время в ходе обсуждения.

Поддержка некоторых из перечисленных чипов может в итоге остаться в ядре Linux, но только не PicoXcell. Это процессор компании PicoChip, выпущенный более 10 лет назад и впервые отмеченный в ядре Linux в 2011 г. PicoChip была основана в 2000 г., в 2012 г. ее приобретена сперва Mindspeed Technologies, а затем и Intel.

ARM-процессоры без обновлений

Процессор / семейство процессоров Добавлен в состав ядра Linux Дата последнего обновления
ASM9260 2 014 2 015
AXXIA 2 014 2 015
BCM/Kona 2 013 2 014
DigiColor 2 014 2 015
Dove 2 009 2 015
EFM32 2 011 2 013
NSPIRE 2 013 2 015
PicoXcell  2 011 нет данных
PRIMA2 2 011 2 015
Spear 2 010 2 015
Tango 2 015 2 017
U300 2 009 2 013
VT8500 2 015 2 014
ZX 2 010 нет данных

Бергман попросил разработчиков оповестить его, если один или несколько процессоров до сих пор поддерживаются разработчиками. В этом случае их поддержка будет сохранена.

Бергман также предложил удалить поддержку нескольких старых ARM-платформ, получавших обновление в недавнем прошлом. В списке есть процессоры, поддержка которых была добавлена в ядро Linux в период с 2006 по 2016 гг., обновлявшиеся в 2019, 2018 и 2017 гг.

Композитный ИИ: что это такое и зачем он нужен?
Искусственный интеллект

Недавно обновлявшиеся ARM-процессоры

Процессор / семейство процессоров Добавлен в состав ядра Linux Дата последнего обновления
CLPS711x нет данных 2 016
CNS3xxx 2 010 2 019
EP93xx 2 006 нет данных
Footbridge нет данных 2 013
Gemini 2 009 нет данных
HISI 2 013 нет данных
Highbank 2 011 нет данных
IOP32x 2 006 нет данных
IXP4xx нет данных 2 018
LPC18xx 2 015 2 019
LPC32xx 2 010 нет данных
MMP 2 009 2 017
Moxart 2 013 нет данных
MV78xx0 2 008 нет данных
Nomadik 2 009 нет данных
OXNA 2 016 нет данных
PXA нет данных нет данных
RPC нет данных нет данных
SA1100 нет данных нет данных

В этом перечне 19 пунктов, но лишь по шести из них у Бергмана есть информация по дате последнего обновления.

Video demo: /proc/cpuinfo and lscpu command

See the following video demo:

See also:

How do I find out Linux CPU utilization?


Get the latest tutorials on Linux, Open Source & DevOps viaRSS feed ➔   
Weekly email newsletter ➔


ADVERTISEMENT

Category List of Unix and Linux commands
Documentation help • mandb • man • pinfo
Disk space analyzers df • duf • ncdu • pydf
File Management cat • cp • less • mkdir • more • tree
Firewall Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04
Linux Desktop Apps Skype • Spotify • VLC 3
Modern utilities bat • exa
Network Utilities NetHogs • dig • host • ip • nmap
OpenVPN CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04
Package Manager apk • apt
Processes Management bg • chroot • cron • disown • fg • glances • gtop • jobs • killall • kill • pidof • pstree • pwdx • time • vtop
Searching ag • grep • whereis • which
Shell builtins compgen • echo • printf
Text processing cut • rev
User Information groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w
WireGuard VPN Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04

Say hello to lscpu

The lscpu command is CPU architecture information helper and can be found under Fedora Linux / RHEL / CentOS v6+ / Debian Linux v6+ and many other latest distro includes this command.
Sample outputs:

Patreon supporters only guides

  • No ads and tracking
  • In-depth guides for developers and sysadmins at Opensourceflare
  • Join my Patreon to support independent content creators and start reading latest guides:
    • How to set up Redis sentinel cluster on Ubuntu or Debian Linux
    • How To Set Up SSH Keys With YubiKey as two-factor authentication (U2F/FIDO2)
    • How to set up Mariadb Galera cluster on Ubuntu or Debian Linux
    • A podman tutorial for beginners – part I (run Linux containers without Docker and in daemonless mode)

Join Patreon ➔

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 30
Stepping:              5
CPU MHz:               1199.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K

Warning : lscput command has bug and sometimes in Xen Dom0 kernel reports wrong data. So please use /proc/cpuinfo for verification purpose.

Короткое слово в заключение

Из этого урока вы лучше понимаете, что могут предложить Prometheus и Grafana .

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

DevOps-мониторинг — определенно интересная тема, но если вы сделаете это неправильно, он может превратиться в кошмар.

Именно поэтому мы пишем эти статьи и создаем эти информационные панели: чтобы помочь вам достичь максимальной эффективности того, что могут предложить эти инструменты.

Мы считаем, что отличные технологии можно улучшить с помощью полезных демонстраций.

А Ты?

Если вы согласны, присоединяйтесь к растущему списку DevOps, выбравших этот путь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector