The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ioping - утилита для анализа отзывчивости подсистемы ввода/в..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от opennews (ok) on 06-Июн-11, 17:35 
Константин Хлебников разработал (http://k001.livejournal.com/810982.html) полезную утилиту ioping (http://code.google.com/p/ioping/), позволяющую в стиле утилиты ping наблюдать за изменением отзывчивости системы ввода/вывода в Linux.

Пример выполнения:

<font color="#461b7e">
   $ ioping /home
   4096 bytes from . (ext4 /dev/sda5): request=1 time=0.4 ms
   4096 bytes from . (ext4 /dev/sda5): request=2 time=0.8 ms
   4096 bytes from . (ext4 /dev/sda5): request=3 time=0.9 ms
   4096 bytes from . (ext4 /dev/sda5): request=4 time=0.3 ms
   4096 bytes from . (ext4 /dev/sda5): request=5 time=0.2 ms
   --- . ioping statistics ---
   5 requests completed in 4266.5 ms
   min/avg/max/mdev = 0.2/0.5/0.9/0.1 ms

</font>


URL: http://k001.livejournal.com/810982.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=30791

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  –1 +/
Сообщение от spanasik email(ok) on 06-Июн-11, 17:35 
А вот я бы структурки-то обнулял при объявлении сразу, в местах типа
struct timeval tv = {0};
так, на всякий случай.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от Аноним (??) on 06-Июн-11, 19:00 
Зачем? Первая строчка после объявления структуры - передача её в gettimeofday.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от spanasik email(ok) on 06-Июн-11, 19:42 
Это когда сам всё пишешь и на 110% уверен, что там всё будет ОК, можно и так оставить. А когда юзаешь чужой код, дабы избежать трудноуловимых багов, порождённых иницилизацией структуры случайным мусором, лучше обнулять.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

9. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  –1 +/
Сообщение от bircoph (ok) on 06-Июн-11, 20:48 
вот так и возникают тормозные программы с грязным кодом...
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

10. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от spanasik email(ok) on 06-Июн-11, 20:49 
Как ?


Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от zazik (ok) on 06-Июн-11, 20:51 
> Как ?

Спроси у авторов Excel 2010, который не может открыть более одного файла с одинаковыми именами.

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от spanasik email(ok) on 06-Июн-11, 20:55 
Был однажды вопрос к Windows Server-департаменту ихнему, по поводу одной ерунды в их ОС, в официальном форуме техподдержки (остальные способы техподдержки все очень платные) посоветовали прикупить дополнительное third-party ПО, которое фиксит этот вопрос за over 9000. Так что спасибо, нет желания у них что-либо спрашивать, да и не юзаю я этот самый Excel 2010 :-)

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  –1 +/
Сообщение от letsmac (ok) on 06-Июн-11, 22:19 
Да самое оно для секретарш.  И чем вас это парит?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

31. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от zazik (ok) on 07-Июн-11, 09:31 
> Да самое оно для секретарш.  И чем вас это парит?

Мне приходится его использовать. К счастью, дома я свободен в выборе софта.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

3. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от Archer73 (ok) on 06-Июн-11, 19:04 
Смущает время 0.2 ms

./ioping /home -c 6 -i 1 -D
4096 bytes from /home (ext4 /dev/sdc2): request=1 time=14.7 ms
4096 bytes from /home (ext4 /dev/sdc2): request=2 time=6.0 ms
4096 bytes from /home (ext4 /dev/sdc2): request=3 time=0.2 ms
4096 bytes from /home (ext4 /dev/sdc2): request=4 time=0.2 ms
4096 bytes from /home (ext4 /dev/sdc2): request=5 time=2.5 ms
4096 bytes from /home (ext4 /dev/sdc2): request=6 time=3.5 ms

--- /home ioping statistics ---
6 requests completed in 5028.8 ms
min/avg/max/mdev = 0.2/4.5/14.7/5.0 ms

./ioping /dev/sdc2 -c 6 -i 1 -D
4096 bytes from /dev/sdc2 (block device): request=1 time=29.5 ms
4096 bytes from /dev/sdc2 (block device): request=2 time=13.3 ms
4096 bytes from /dev/sdc2 (block device): request=3 time=8.5 ms
4096 bytes from /dev/sdc2 (block device): request=4 time=7.8 ms
4096 bytes from /dev/sdc2 (block device): request=5 time=15.8 ms
4096 bytes from /dev/sdc2 (block device): request=6 time=18.2 ms

--- /dev/sdc2 ioping statistics ---
6 requests completed in 5094.0 ms
min/avg/max/mdev = 7.8/15.5/29.5/7.3 ms

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

32. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от Онаним on 07-Июн-11, 10:27 
Это оптимизации на уровне файловой системы. Уже не раз замечал, что тестирование (dd) раздела raid10 медленнее, чем тестирование большого файла в файловой системе, лежащей на этом же разделе.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

4. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от oneonfire on 06-Июн-11, 19:14 
Всем пользователям Archlinux - милости прошу - https://aur.archlinux.org/packages.php?ID=49608
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

33. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от Дмитрий (??) on 07-Июн-11, 10:34 
Спасибо за PKGBUILD!
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

16. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от ZaWertun (ok) on 06-Июн-11, 22:21 
Репозитории для OpenSUSE (11.3, 11.4, Factory, Tumbleweed) и SLE (11, 11 SP1): http://download.opensuse.org/repositories/home:/ZaWertun:/co.../
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от Funt email on 06-Июн-11, 22:54 
где ebuild, не в одном оверлеи нету
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от k0l0b0k (??) on 06-Июн-11, 23:17 
присоединяюсь к запросу. ебилды писать не умею (
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

20. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +3 +/
Сообщение от slepnoga (ok) on 06-Июн-11, 23:45 
> присоединяюсь к запросу. ебилды писать не умею (

Однака, зачем мало-мало гента пингвин ставил, крутада ?

"Настоящие гентушники ебилдов не ждут, они их пишут" ( кто то и @g.org)

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

21. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от k0l0b0k (??) on 07-Июн-11, 00:00 
честно - некогда писать. и таки да, "Настоящие гентушники ебилдов не ждут, они их пишут" - враки. бывают еще и пользователи
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +6 +/
Сообщение от pavlinux (ok) on 07-Июн-11, 00:10 
Пользователь Gentoo, это даже смешнее, чем Windows сервер. :)
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

24. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  –2 +/
Сообщение от VX (??) on 07-Июн-11, 01:01 
...сам пошутил, сам посмеялся.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

29. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от Sergey722 (ok) on 07-Июн-11, 08:51 
> Пользователь Gentoo, это даже смешнее, чем Windows сервер. :)

А если это Calculate?

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

30. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от slepnoga (ok) on 07-Июн-11, 09:31 
>> Пользователь Gentoo, это даже смешнее, чем Windows сервер. :)
> А если это Calculate?

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

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

35. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от daks (ok) on 07-Июн-11, 12:34 
> Пользователь Gentoo, это даже смешнее, чем Windows сервер. :)

Как сказать. У меня жена является пользователем Gentoo. Точнее - Calculate с бинарным профилем. Полгода, полёт нормальный. Я только обновляю раз в неделю-две.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

36. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от ach (ok) on 07-Июн-11, 14:49 
Значит трясите разрабов Calculate. А проще, ей-Богу, посмотреть представленный PKGBUILD для арча, взять какой-нить ebuild для примера и сделать. Это только кажется, что трудно.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

38. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от daks (ok) on 07-Июн-11, 15:29 
> Значит трясите разрабов Calculate. А проще, ей-Богу, посмотреть представленный PKGBUILD
> для арча, взять какой-нить ebuild для примера и сделать. Это только
> кажется, что трудно.

Не надо никого трясти, sys-process/ioping-0.4.ebuild с утра в оверлее Calculate.

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

42. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от anonymous (??) on 07-Июн-11, 19:22 
> Пользователь Gentoo, это даже смешнее, чем Windows сервер. :)

Однако, пытавшийся хоть раз написать что-то для генты, знает, какой это геморрой. Использовать их навязанные функции и прочую ерунду. Сидел на слаке, писал слакбилды регулярно. Гента во многом удобнее слаки, но вот писать ебилды - та еще др*чь.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

34. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от daks (ok) on 07-Июн-11, 12:31 
ioping-0.4 в оверлее Calculate. Welcome.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от pavlinux (ok) on 06-Июн-11, 23:21 
./ioping /
4096 bytes from / (xfs /dev/root): request=1 time=0.0 ms
4096 bytes from / (xfs /dev/root): request=2 time=0.0 ms
4096 bytes from / (xfs /dev/root): request=3 time=0.0 ms

Пля... :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

37. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от reminux (ok) on 07-Июн-11, 15:07 
это нирвана
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

23. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  –1 +/
Сообщение от Buy email(??) on 07-Июн-11, 00:49 
Интересно! Скачал поставил ;) min/avg/max понятно, а что такое mdev?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

26. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от pavlinux (ok) on 07-Июн-11, 02:23 
>  min/avg/max понятно, а что такое mdev?

time_avg = time_sum / request;
sqrt(time_sum2 / request - time_avg * time_avg);

корень из разности квадратов ... х.з, наверно cреднеквадратическое отклонение.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

25. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от pavlinux (ok) on 07-Июн-11, 02:01 

diff -ur a/ioping.c b/ioping.c
--- a/ioping.c  2011-06-02 22:51:03.000000000 +0400
+++ b/ioping.c  2011-06-07 02:35:12.126000920 +0400
@@ -379,7 +379,7 @@

        if (S_ISDIR(st.st_mode)) {
                char *tmpl = "/ioping.XXXXXX";
-               char *temp = malloc(strlen(path) + strlen(tmpl) + 1);
+               char *temp = calloc(1, PATH_MAX); // :)

                if (!temp)
                        err(2, NULL);
@@ -498,7 +498,7 @@

                usleep(interval);
        }
-
+       free(buf); // end of posix_memalign()
        time_total = now() - time_total;

        time_sum += part_sum;

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от pavlinux (ok) on 07-Июн-11, 03:47 

diff -ur a/ioping.c b/ioping.c
--- a/ioping.c    2011-06-02 22:51:03.000000000 +0400
+++ b/ioping.c    2011-06-07 04:01:04.000000000 +0400
@@ -166,6 +166,7 @@
char *path = NULL;
char *fstype = "";
char *device = "";
+short strduped = 0;

int fd;
char *buf;
@@ -258,41 +259,43 @@

void parse_device(dev_t dev)
{
-    char *buf = NULL, *ptr;
-    unsigned major, minor;
-    struct stat st;
-    size_t len;
    FILE *file;
+    char *buf, *ptr;
+    unsigned major, minor;
+    size_t len = (~0);

    /* since v2.6.26 */
    file = fopen("/proc/self/mountinfo", "r");
-    if (!file)
-        goto old;
-    while (getline(&buf, &len, file) > 0) {
+
+    if (file != NULL) {
+    buf = calloc(1, PATH_MAX);
+        while (getline(&buf, &len, file) > 0) {
        sscanf(buf, "%*d %*d %u:%u", &major, &minor);
        if (makedev(major, minor) != dev)
            continue;
        ptr = strstr(buf, " - ") + 3;
        fstype = strdup(strsep(&ptr, " "));
-        device = strdup(strsep(&ptr, " "));
-        goto out;
-    }
-old:
-    /* for older versions */
-    file = fopen("/proc/mounts", "r");
-    if (!file)
+        device = strdup(strsep(&ptr, " "));                
+        }
+       } else {
+        /* for older versions */
+        file = fopen("/proc/mounts", "r");
+        if (!file)
        return;
-    while (getline(&buf, &len, file) > 0) {
+
+        struct stat st;
+
+        while (getline(&buf, &len, file) > 0) {
        ptr = buf;
        strsep(&ptr, " ");
        if (*buf != '/' || stat(buf, &st) || st.st_rdev != dev)
            continue;
        strsep(&ptr, " ");
        fstype = strdup(strsep(&ptr, " "));
-        device = strdup(buf);
-        goto out;
+        device = strdup(buf);                
+        }
    }
-out:
+        strduped = 1;
    free(buf);
    fclose(file);
}
@@ -312,6 +315,12 @@
    sigaction(signo, &sa, NULL);
}

+void free_on_exit(void) {
+    
+    if (strduped)
+        free(fstype), free(device);
+}
+
int main (int argc, char **argv)
{
    ssize_t ret_size;
@@ -323,6 +332,8 @@
    double time_sum, time_sum2, time_mdev, time_avg;
    double part_sum, part_sum2, part_mdev, part_avg;

+        atexit(free_on_exit);
+        
    parse_options(argc, argv);

    if (wsize)
@@ -379,7 +390,7 @@

    if (S_ISDIR(st.st_mode)) {
        char *tmpl = "/ioping.XXXXXX";
-        char *temp = malloc(strlen(path) + strlen(tmpl) + 1);
+        char *temp = calloc(1, PATH_MAX);

        if (!temp)
            err(2, NULL);
@@ -498,7 +509,7 @@

        usleep(interval);
    }
-
+    free(buf);
    time_total = now() - time_total;

    time_sum += part_sum;

patch -p1 < copy-n-paste.diff;

# valgrind --leak-check=full  --show-reachable=yes --track-origins=yes ./ioping -c5 .

==8328== Memcheck, a memory error detector
==8328== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==8328== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==8328== Command: ./ioping -c5 .
==8328==
4096 bytes from . (tmpfs tmpfs): request=1 time=1.7 ms
4096 bytes from . (tmpfs tmpfs): request=2 time=0.1 ms
4096 bytes from . (tmpfs tmpfs): request=3 time=0.1 ms
4096 bytes from . (tmpfs tmpfs): request=4 time=0.1 ms
4096 bytes from . (tmpfs tmpfs): request=5 time=0.1 ms

--- . ioping statistics ---
5 requests completed in 4120.7 ms
min/avg/max/mdev = 0.1/0.4/1.7/0.7 ms
==8328==
==8328== HEAP SUMMARY:
==8328==     in use at exit: 0 bytes in 0 blocks
==8328==   total heap usage: 6 allocs, 6 frees, 12,868 bytes allocated
==8328==
==8328== All heap blocks were freed -- no leaks are possible
==8328==
==8328== For counts of detected and suppressed errors, rerun with: -v
==8328== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)

Йес!!! Я спать! :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

28. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от Гентушник (ok) on 07-Июн-11, 07:06 
Ты это лучше в апстрим отправь, тут то зачем публикуешь?
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

39. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от тру йода on 07-Июн-11, 18:42 
Он тут свое ЧСВ удовлетворяет, если еще не понятно. С освоил - нешуточное дело. Но бабы не ценят, а вот опеннет - совсем другое дело.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

40. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от тру йода on 07-Июн-11, 18:44 
Судя по павлинуксу, кстати, бабы также не ценят Opteron и SSD. Приходится ему бедному время от времени на опеннете невзначай так про них упомянуть.
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

41. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +1 +/
Сообщение от x on 07-Июн-11, 18:57 
он кстати нормальный чувак, в отличие от.
и писать на Си может, когда другие только балаболят.
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

43. "ioping - утилита для анализа отзывчивости подсистемы ввода/в..."  +/
Сообщение от товарищ on 07-Июн-11, 19:33 
товарищи, объясните пожалуйста как эта утилитка работает?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру