Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Пропал /proc/sys/kernel/vsyscall64 / 8 сообщений из 8, страница 1 из 1
16.05.2013, 11:29
    #38259860
vromanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
На моей fedora 17 пропал /proc/sys/kernel/vsyscall64
Он использовался для ускорения работы функцй получения времени. Сейчас его нет, соответсвенно не работает
Код: plaintext
1.
echo 1 >/proc/sys/kernel/vsyscall64


Как бы его вернуть?
Jabber: vromanov@gmail.com
...
Рейтинг: 0 / 0
16.05.2013, 13:06
    #38260131
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
vromanovНа моей fedora 17 пропал /proc/sys/kernel/vsyscall64
Он использовался для ускорения работы функцй получения времени. Сейчас его нет, соответсвенно не работает
Код: plaintext
1.
echo 1 >/proc/sys/kernel/vsyscall64


Как бы его вернуть?
Jabber: vromanov@gmail.com
Откатиться к старому ядру и glibc.
...
Рейтинг: 0 / 0
19.05.2013, 10:16
    #38263729
vromanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
OoCcОткатиться к старому ядру и glibc.
Федора используется для разработки и прогонки маленьких тестов.. Без этой настройки большую часть времени в тестах занимает получение времени. Придется теперь некоторые тесты обязательно на RHEL катать. Или переходить на какой-то другой линукс типа Centos, OEL
...
Рейтинг: 0 / 0
28.05.2013, 15:42
    #38276850
vromanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
Итак, решение найдено.
В свежих ядрах переделали механизм vsyscall. Теперь для определения точного времени используется TSC
Но он не всегда рабтоает. Как проверить -
Код: sql
1.
2.
3.
4.
5.
# dmesg | grep -i tsc                                                                                                                                                                         
[    0.000000] tsc: Fast TSC calibration using PIT                                                                                                                                                                                           
[    0.000000] tsc: Detected 2526.865 MHz processor                                                                                                                                                                                          
[    1.627388] tsc: Refined TSC clocksource calibration: 2526.999 MHz                                                                                                                                                                        
[    1.627392] Switching to clocksource tsc                                                                                                                                                                                                  


Если выдача похожа - значит все ок. Если нет, нужно добавить строчку "processor.max_cstate=1" к параметрам ядра. Это запретить поцессору засыпать, т.к. при этом останавливается таймер.

Все это позволит значительно быстре получать текущее время.
Пример получаемой разницы
Timestamp::Bench_gettimeofday 362 ms, 27616375 operations/sec : OK
Timestamp::Bench_gettimeofday 7609 ms, 1314206 operations/sec : OK
Т.е. ускорение в 20 раз.
...
Рейтинг: 0 / 0
28.05.2013, 15:49
    #38276870
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
vromanov, а расскажите, с какой целью нужно получать текущее время десятки миллионов раз в секунду?
...
Рейтинг: 0 / 0
28.05.2013, 16:51
    #38277047
vromanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
Scott Tigervromanov, а расскажите, с какой целью нужно получать текущее время десятки миллионов раз в секунду?
У нас используются очереди сообщений. Каждое сообщение имеет время. Также засекается время нахождения сообщения в очрееди и собирается статистика. Если сообщение лежит в очерели очень долго - дропается или выполняется специальное действие

Засекается время выполнения запросов в бд. Собирается статистика, выводятся самые прожорливые запросы

Измеряется общее время обработки запроса итд..

Для оптимизации производительности снимаются другие временные параметры

В результате получение времени становится достаточно критической задачей, т.к. время выполнения запроса к базе данных становится сравнимым с затратами на измерение этого времени
...
Рейтинг: 0 / 0
29.05.2013, 11:00
    #38278044
OoCc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
vromanovScott Tigervromanov, а расскажите, с какой целью нужно получать текущее время десятки миллионов раз в секунду?
У нас используются очереди сообщений. Каждое сообщение имеет время. Также засекается время нахождения сообщения в очрееди и собирается статистика. Если сообщение лежит в очерели очень долго - дропается или выполняется специальное действие

Засекается время выполнения запросов в бд. Собирается статистика, выводятся самые прожорливые запросы

Измеряется общее время обработки запроса итд..

Для оптимизации производительности снимаются другие временные параметры

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

Тоесть тебе нужен простой и быстрый timestamp? В х84_64 есть команда rdtsc тынц для начала.
...
Рейтинг: 0 / 0
29.05.2013, 18:26
    #38279106
vromanov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пропал /proc/sys/kernel/vsyscall64
OoCc,

Я знаю эту команду. Но с ней все равно надо гемороится. Например, этот счетчки может останавливаться если проц уходит в idle. Его надо масштабировать итд. Собственно именно это и делает gettimeofday. Короче этот счетчик можно ограничено исплользовать для некотрых бенчтестов, но как основной он не годится. Т.к. я совсем не знаю как он, например, поведет себя под виртуализацией, на amd итд
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Пропал /proc/sys/kernel/vsyscall64 / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]