Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Serwer Debian - Samba wolna kiedy nic sie nie dzieje na dysku

19 Lis 2013 10:59 3318 16
  • Poziom 17  
    Witam,

    Jakis czas temu postanowiłem zamienić swój stary serwer domowy na debianie na coś bardziej energooszczędnego.
    Wybralem plyte Intel DN2800MT i dysk WD Green 2TB. Na plycie jest chipset NM10, procesor Intel Atom D2800 i 4GB ram. Płyta zasilana z 12V DC.

    Pobór mocy w stanie spoczynku 14W (z sieci 240V) i ok 16W w stanie aktywnym.

    Wszystkie komponenty w sieci parcują z prędkością 1Gb (sprawdzone ze starym serwerem). Sieć jest większa ale przy testach ograniczyłem się tylko do połączenia serwer-router-PC_XP lub serwer-router-ANDROID.
    System to DEBIAN 7.2.0, dla testów tylko z SMB, FTP i SSH.

    Transfer przez Sambę do i z serwera wacha sie w okolicy 800KB/s.
    Transfer przez FTP do i z serwera wacha sie w okolicy 60MB/s.
    Kiedy podczas tego wolnego transferu przez Sambę rozpocznę transfer przez FTP, to transfer przez Sambę nagle rośnie do ok 30MB/s, a kiedy FTP sie skończy to Samba też zwalnia...
    Takie samo zachownie widać kiedy na serwerze kopiuję jakiś plik w obrębie dysku...(z lini poleceń).

    Przetestowałem odzielnie prękość sieci, dysku i procesora - wszystko OK (co potwierdza transfer FTP).
    Zamieniałem dysk na nowy (taki sam typ) - bez zmian
    Zainstalowałem Debiana 6.1 (jak na starym serwerze) - bez zmian.
    Zmieniałem czasy przejścia dysku w IDLE - bez zmian.
    Zmienilem dysk na inny typ - bez zmian.

    A więc coś na MOBO.
    Czy ktoś może mi podpowiedzić gdzie szukać dalej ?.
  • Specjalista Sieci, Internet
    Wsadź USB pendrive, mount ten drive pod sambę, test transfer z tego dysku.
  • Poziom 17  
    UPDATE:

    Jeśli jest kilka transferów Samba, to wszystko śmiga OK...
    Jeśli jeden i nic dodatkowego nie odczytuje/zapisuje do dysku to jest wooolno.
  • Pomocny post
    Specjalista Sieci, Internet
    Jak to mierzysz ? może jeden z testujących komputerów ma wolny transfer ?
  • Poziom 17  
    bogiebog napisał:
    Wsadź USB pendrive, mount ten drive pod sambę, test transfer z tego dysku.


    Tak zrobilem.
    Transfer do USB tez bardzo wolny, ale jak tylko zaczne inny transfer w tym samym czasie (do USB lub HDD) to wszystko zaczyna działać szybko...

    bogiebog napisał:
    Jak to mierzysz ? może jeden z testujących komputerów ma wolny transfer ?


    Total Commander n.p. pokazuje prędkość. Pozatym stary serwer działa z tym komputerem OK. Inne komputery mają tak samo.
    Problem jest definitywnie w nowym serwerze.
  • Specjalista Sieci, Internet
    SPróbuj dostęp przez localhost, jaki transfer masz w takiej konfiguracji ?
  • Poziom 17  
    Dostęp przez localhost? tzn ? :)

    bogiebog napisał:
    SPróbuj dostęp przez localhost, jaki transfer masz w takiej konfiguracji ?




    OK, sprawdzilem. IE pokazuje 2,46MB/s (plik 700M). Czyli wolno...

    Dodano po 14 [minuty]:

    Obserwacja:
    Jesli podczas transferu z local host (2.5MB/s) Zaczne transfer do/z serwera przez sambe, to ten z local host skacze do 5MB/s
  • Specjalista Sieci, Internet
    Zobacz czy "top" coś ciekawego pokazuje, może jak jest wolno to CPU jest przycinana (stepped down) przez system w jakiś sposób.

    Dodano po 9 [minuty]:

    Zamiast puszczać inny transfer, spróbuj wymusić CPU aktywność jakims programem, tylko CPU, np 'cat /dev/random > /dev/null'
  • Pomocny post
    Poziom 43  
    Pokaż wyniki:
    Kod: bash
    Zaloguj się, aby zobaczyć kod
  • Poziom 17  
    bogiebog napisał:
    Zobacz czy "top" coś ciekawego pokazuje, może jak jest wolno to CPU jest przycinana (stepped down) przez system w jakiś sposób.

    Dodano po 9 [minuty]:

    Zamiast puszczać inny transfer, spróbuj wymusić CPU aktywność jakims programem, tylko CPU, np 'cat /dev/random > /dev/null'



    Jestem w pracy, wiec nie mam bezposredniego dostepu przez sambe, ale zostawilem wlaczony drugi serwer (w tej samej sieci) i zamontowalem na nim udzialy Samba z nowego serwera. Midnight commander pokazuje szybkosci transferu tak jak przy testach lokalnych.

    Obciazylem CPU :

    Code:
    stress --cpu 1 -t 30
    


    i transfer odrazu przyspiesza. niewazne czy obciaze jeden rdzen czy wszystkie.
    A wiec chyba chodzi o step-down procesora.


    Sprawdzam predkosc CPU przez
    Code:
    lscpu


    Podczas normalnego kopiowania ( wolnego) 798MHz
    Kiedy CPU jest obciazony (i transfer OK) 1862MHz

    -- > jurek.adam
    Chyba to wyglada na problem ze stepppingiem procesora? Tylko dlaczego nie przyspiesza kiedy go potrzebuje Samba ?

    Dodano po 1 [godziny] 14 [minuty]:

    UPDATE:

    Zainstalowalem cpufrequtils, zeby ustawic CPU w tryb "performance"


    w /etc/init.d/cpufrequtils

    Code:

    ENABLE="true"
    GOVERNOR="performance"
    MAX_SPEED="1862000"
    MIN_SPEED="798000"


    teraz lscpu pokazuje ciagle 1862MHz, ale sytuacja jest bez zmian.
    transfer jest wolny, do momentu sztucznego obciazenia CPU....
    Ustawienia BIOS sprawdze dopiero wieczorem.
  • Poziom 43  
    Gostek napisał:
    Chyba to wyglada na problem ze stepppingiem procesora?
    Podaj konfigurację Samby i dysków, to o co prosiłem wcześniej, a cpufrequtils jest tu zbędne.
  • Poziom 17  
    Juz robie :)

    Code:

    root@server:~# testparm
    Load smb config files from /etc/samba/smb.conf
    rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
    Processing section "[Data]"
    Processing section "[Media]"
    Loaded services file OK.
    Server role: ROLE_STANDALONE
    Press enter to see a dump of your service definitions

    [global]
            server string = %h server
            obey pam restrictions = Yes
            pam password change = Yes
            passwd program = /usr/bin/passwd %u
            passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
            unix password sync = Yes
            syslog = 0
            log file = /var/log/samba/log.%m
            max log size = 1000
            load printers = No
            printcap name = /dev/null
            disable spoolss = Yes
            dns proxy = No
            panic action = /usr/share/samba/panic-action %d
            idmap config * : backend = tdb
            printing = bsd
            print command = lpr -r -P'%p' %s
            lpq command = lpq -P'%p'
            lprm command = lprm -P'%p' %j

    [Data]
            path = /home/netuser/nas/data
            valid users = netuser
            read only = No

    [Media]
            path = /home/netuser/nas/media
            valid users = netuser
            read only = No


    Code:

    root@server:~# /usr/sbin/smbd -V
    Version 3.6.6


    Code:

    root@server:~# cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # Use 'blkid' to print the universally unique identifier for a
    # device; this may be used with UUID= as a more robust way to name devices
    # that works even if disks are added and removed. See fstab(5).
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda1 during installation
    UUID=75cc129a-010d-4fd4-8f6d-8b8ff47c23cd /               ext4    errors=remount-ro 0       1
    # /home was on /dev/sda6 during installation
    UUID=b1dc9db8-452e-4517-ad2b-339685929496 /home           ext4    defaults        0       2
    # swap was on /dev/sda5 during installation
    UUID=9153a51a-a94d-4384-adf3-1f62bcf1f02e none            swap    sw              0       0
    /dev/sr0        /media/cdrom0   udf,iso9660 user,noauto     0       0
    root@server:~#


    Code:

    root@server:~# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
        inet6 ::1/128 scope host
           valid_lft forever preferred_lft forever
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
        link/ether 00:22:4d:6b:e4:07 brd ff:ff:ff:ff:ff:ff
        inet 192.168.0.5/24 brd 192.168.0.255 scope global eth0
        inet6 fe80::222:4dff:fe6b:e407/64 scope link
           valid_lft forever preferred_lft forever
    root@server:~#
  • Poziom 43  
    Sprawdź taką konfigurację:

    /etc/hosts
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    /etc/samba/smb.conf
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    /etc/network/interfaces
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Po zmianach:
    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Działa wyśmienicie z dyskami na ext4, kartą gigabit, sprawdzałem na Sambie 4.0.11 (jessie - testing) i kernelu 3.10.19, ewentualnie rozważ upgrade Samby do tej wersji:
    http://packages.debian.org/pl/jessie/samba

    Tyle odnośnie Samby i sieci, natomiast jeśli problem tkwi w czym innym to nie mam na razie pomysłu jak to rozwiązać.
  • Poziom 17  
    Wylaczylem SpeedStep w BIOS i wszystko dziala :)

    A dokladniej testowalem trzy opcje :
    -SpeedStep
    -ACPI C2
    -ACPI C3

    Jak wszystkie są wyłączone to transfer samba jest ok 47MB/s.
    Przy wlaczanym SpeedStep, transfer ok 30MB/s (co ciekawe CPU CLK byl w tym czasie najwolniejszy)
    Największy spadek (do ok1MB/s) był kiedy jest włączony jakikolwiek ACPI.

    --> jurek.adam dzieki za te konfigi, bede robil doswiadczenia :)

    --> bogiebog dzieki za naprowadzenie. Jakis moze pomysl dlaczego jak SpeedStep jest wlaczony to samba i tak nie aktywuje pelnej predkosci CPU ?

    Dodano po 4 [minuty]:

    Zalezy mi na SpeedStep, bo CPU jest duzo chlodniejszy w IDLE, a wentylatora tu brak..
  • Poziom 17  
    OK, remedium na moje bolączki to przestawienie poziomu obciazenia procesora przy którym jest on przelaczany na wiekszą częstotliwość.

    Mój "governor", czyli nadzorca częstotliwości CPU jest ustawiony na "ONDEMAND" Teraz w nalezy zmienić próg obciążenia CPU (%)w pliku

    /sys/devices/system/cpu/cpufreq/ONDEMAND/up_threshold

    Domyślnie jest ustawiony na 95, ja zamienilem na 15 i wszystko śmiga jak należy.
    Kiedy niewiele się dzieje, FCPU=798MHz, a jeśli tylko zacznie się jakikolwiek transfer to FCPU skacze do 1862MHz.

    Choć kryje się tu jeszcze kilka tajemnic, temat uważam za zamknięty i dziękuję obu Panom.