Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
W pogoni za bugami w systemd, polecono mi bym "strace pid 1" i sprawdził kilka akcji. Jako, że nie miałem zbytnio jak zrobić "strace pid 1", to wpisałem to w google, a tam w jednym z linków znalazłem ciekawy wpis dotyczący zmiennej TZ — timezone. O co chodzi? Wystarczy wpisać w terminalu te dwa poniższe polecenia i porównać czas jaki zostanie zwrócony:
$ time ls -l `perl -e 'print "/etc " x 1000'` >/dev/null $ time TZ=Europe/Warsaw ls -l `perl -e 'print "/etc " x 1000'` >/dev/null
U mnie wyrzuciło odpowiednio:
1.11s user 1.34s system 99% cpu 2.461 total 0.87s user 1.15s system 99% cpu 2.031 total
Skąd ta różnica? No widać system za każdym razem odpytuje plik /etc/localtime gdy niema w środowisku obecnej zmiennej TZ. Zatem mam pytanie, czy wy tę zmienną macie ustawioną? Jakby nie patrzeć to ponad 20% lepszy performance. xD
Ostatnio edytowany przez morfik (2015-10-13 22:14:40)
Offline
Faktycznie:
time ls -l `perl -e 'print "/etc " x 1000'` >/dev/null real 0m6.701s user 0m3.527s sys 0m3.117s
time TZ=Europe/Warsaw ls -l `perl -e 'print "/etc " x 1000'` >/dev/null real 0m4.908s user 0m2.613s sys 0m2.251s
Też jestem ciekaw, o co biega z tą zmienną.
Offline
morfik napisał(-a):
Ja sobie ją ustawiłem na sztywno już. xD
cat /etc/env.d/00timezone TZ=Europe/Warsaw
SOA#1
:D
Offline
W Gentoo i Funtoo, w Debku i klonach masz /etc/environment,
w Archu czy CentOS - niech się ktoś inny wypowie.
Offline
Sysvinit, 100 % obciążenia procesora (wszystkie wątki):
logan@toshiba:~$ time ls -l `perl -e 'print "/etc " x 1000'` >/dev/null real 0m3.322s user 0m1.496s sys 0m1.220s
logan@toshiba:~$ time TZ=Europe/Warsaw ls -l `perl -e 'print "/etc " x 1000'` >/dev/null real 0m3.271s user 0m1.436s sys 0m0.988s
Sysvinit, procek na luzie:
logan@toshiba:~$ time ls -l `perl -e 'print "/etc " x 1000'` >/dev/null real 0m1.781s user 0m0.956s sys 0m0.824s
logan@toshiba:~$ time TZ=Europe/Warsaw ls -l `perl -e 'print "/etc " x 1000'` >/dev/null real 0m1.521s user 0m0.864s sys 0m0.656s
Wniosek? Ustal zmienną i przy okazji wywal systemd.
Ostatnio edytowany przez Pavlo950 (2015-10-13 23:10:22)
Offline
Ja nie mógłbym wywalić systemd, za bardzo ficzerzasty jest dla mnie. xD Poza tym, trzeba by porównać oba strace i ustalić przyczynę. To powyższe to tylko jeden przykład. W sumie ja jeszcze się nie zagłębiałem w ten cały strace -- jakaś książka by się przydała czy coś. xD
Offline
Tu trochę podobny przypadek:
http://stackoverflow.com/questions/4554271/how-to-a … time-on-linux
Offline