Процесс virtuoso-t, нагружающий процессор — Linux

Заметил у себя сильную загруженность процессора (до 50%), грешил и на дрова, и на железо,  в итоге заметили с товарищем процесс под названием virtuoso-t — google подсказал, что это индексирование файлов… для более быстрого поиска.. в общем, фича, которую в винде я отрубал сразу )

Ищем в своем КДЕ desktop search file indexing — и отключаем индексирование нафиг, процессор успокаивается, всем хорошо, все плачут от счастья!

Процесс virtuoso-t, нагружающий процессор — Linux: 22 комментария

  1. Сергей

    Вот только если у вас теробайт другой журналов в формате pdf и искать надо не по имени, а по содержимому, то этот сервис просто необходим и без него жить невозможно. Есть аналоги, но по сути рботают так же и ресурсы тоже требуют. Покопайтесь в настройках, ограничте число процессоров и потребляемой памяти и будет вам счастье. (/etc/virtuoso/virtuoso.ini или как то так).

    1. ОзимОзим Автор записи

      Терабайт pdf файлов? Да вы, батенька, коллекционер! :) я пытался ковырять настройки индексатора, это ни к чему не привело, а меня как то не вставляет, на компе с 4мя ядрами и 8 гигами ОЗУ ждать пока среагирует клик по программе..
      Мне поиск по содержимому не нужен, документов у меня раз два и обчелся, но, да: решение по оптимизации было бы неплохо найти.
      Как вы его настроили? /etc/virtuoso/virtuoso.ini — такого файла нет.

      1. Сергей

        У меня есть, запускал принудительно с ним. Работал в FC17 RFremix.
        А коллекция — это рабочий инструмент, химические журналы — без них работать практически не возможно.

        Я свой нашел через locate virtuoso | grep ini

        1. ОзимОзим Автор записи

          у меня выдало

          /usr/share/doc/virtuoso-minimal
          /usr/share/doc/virtuoso-minimal/AUTHORS
          /usr/share/doc/virtuoso-minimal/NEWS.gz
          /usr/share/doc/virtuoso-minimal/README.gz
          /usr/share/doc/virtuoso-minimal/changelog.Debian.gz
          /usr/share/doc/virtuoso-minimal/copyright
          /var/lib/dpkg/info/virtuoso-minimal.list
          /var/lib/dpkg/info/virtuoso-minimal.md5sums
          
  2. Сергей

    Мдя, тут надо думать. У меня то есть. С работы приду, посмотрю.

  3. Сергей

    Ладно, для начала у меня следующая версия стоит (virtuoso-t -v): Version 6.1.6.3127-pthreads as of Aug 2 2012.
    Линукс (uname -a): Linux localhost 3.8.11-100.fc17.x86_64 #1 SMP Wed May 1 19:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
    Поиск файлов настройки (locate virtuoso | grep ini):
    /etc/virtuoso/virtuoso.ini
    /var/lib/virtuoso/db/virtuoso.ini (ссылка на /etc/virtuoso/virtuoso.ini).

    Настройки по производительности, следующие параметры:
    NumberOfBuffers = 10000
    MaxDirtyBuffers = 6000
    Эти они рекомендуют как минимальные.

    И ещё вот: SingleCPU = 0
    (Сам не проверил ещё, но если поставить 1 должен работать только на одном ядре).
    Продолжение следует.

    1. ОзимОзим Автор записи

      у меня нет такого.. Может потому, что система х64 ?

      1. Сергей

        uname -a небери, посмотрим. Да и virtuoso-t -v то же. что напишет?

        1. ОзимОзим Автор записи

          вот
          ozim@ozim-kde:~$ uname -a
          Linux ozim-kde 3.8.0-20-generic #31-Ubuntu SMP Mon May 6 17:03:32 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
          ———-
          ozim@ozim-kde:~$ virtuoso-t -v
          Virtuoso Open Source Edition (multi threaded)
          Version 6.1.6.3127-pthreads as of Jan 14 2013
          Compiled for Linux (x86_64-pc-linux-gnu)

          1. Сергей

            Значит будем шаманить с бубном:
            Что у тебя выдаёт на: locate virtuoso

            Мой вариант:
            [root@localhost ~]# locate virtuoso
            /etc/virtuoso
            /etc/virtuoso/virtuoso.ini
            /usr/bin/virtuoso-t
            /usr/lib/modules/3.6.8-2.fc17.x86_64/kernel/sound/pci/oxygen/snd-virtuoso.ko
            /usr/lib/modules/3.8.11-100.fc17.x86_64/kernel/sound/pci/oxygen/snd-virtuoso.ko
            /usr/lib64/virtuoso
            /usr/lib64/redland/librdf_storage_virtuoso.so
            /usr/lib64/soprano/libsoprano_virtuosobackend.so
            /usr/libexec/virtuoso
            /usr/share/virtuoso
            /usr/share/doc/virtuoso-opensource-6.1.6
            /usr/share/doc/virtuoso-opensource-6.1.6/AUTHORS
            /usr/share/doc/virtuoso-opensource-6.1.6/COPYING
            /usr/share/doc/virtuoso-opensource-6.1.6/CREDITS
            /usr/share/doc/virtuoso-opensource-6.1.6/ChangeLog
            /usr/share/doc/virtuoso-opensource-6.1.6/LICENSE
            /usr/share/doc/virtuoso-opensource-6.1.6/README.UPGRADE
            /usr/share/soprano/plugins/virtuosobackend.desktop
            /usr/share/virtuoso/vad
            /var/lib/virtuoso
            /var/lib/virtuoso/db
            /var/lib/virtuoso/db/virtuoso.ini

            И

            [root@localhost ~]# ls /var/lib/virtuoso/db/
            virtuoso.db virtuoso.ini virtuoso.lck virtuoso.log virtuoso.pxa virtuoso-temp.db virtuoso.trx

  4. Сергей

    запуск virtuoso-t +configfile [твой_путь_к_файлу/virtuoso.ini] +foreground +wait

    файл /etc/virtuoso/virtuoso.ini

    ;
    ; virtuoso.ini
    ;
    ; Configuration file for the OpenLink Virtuoso VDBMS Server
    ;
    ; To learn more about this product, or any other product in our
    ; portfolio, please check out our web site at:
    ;
    ; http://virtuoso.openlinksw.com/
    ;
    ; or contact us at:
    ;
    ; general.information@openlinksw.com
    ;
    ; If you have any technical questions, please contact our support
    ; staff at:
    ;
    ; technical.support@openlinksw.com
    ;
    ;
    ; Database setup
    ;
    [Database]
    DatabaseFile = /var/lib/virtuoso/db/virtuoso.db
    ErrorLogFile = /var/lib/virtuoso/db/virtuoso.log
    LockFile = /var/lib/virtuoso/db/virtuoso.lck
    TransactionFile = /var/lib/virtuoso/db/virtuoso.trx
    xa_persistent_file = /var/lib/virtuoso/db/virtuoso.pxa
    ErrorLogLevel = 7
    FileExtend = 200
    MaxCheckpointRemap = 2000
    Striping = 0
    TempStorage = TempDatabase

    [TempDatabase]
    DatabaseFile = /var/lib/virtuoso/db/virtuoso-temp.db
    TransactionFile = /var/lib/virtuoso/db/virtuoso-temp.trx
    MaxCheckpointRemap = 2000
    Striping = 0

    ;
    ; Server parameters
    ;
    [Parameters]
    ServerPort = 1111
    LiteMode = 0
    DisableUnixSocket = 1
    DisableTcpSocket = 0
    ;SSLServerPort = 2111
    ;SSLCertificate = cert.pem
    ;SSLPrivateKey = pk.pem
    ;X509ClientVerify = 0
    ;X509ClientVerifyDepth = 0
    ;X509ClientVerifyCAFile = ca.pem
    ServerThreads = 20
    CheckpointInterval = 60
    O_DIRECT = 0
    CaseMode = 2
    MaxStaticCursorRows = 5000
    CheckpointAuditTrail = 0
    AllowOSCalls = 0
    SchedulerInterval = 10
    DirsAllowed = ., /usr/share/virtuoso/vad
    ThreadCleanupInterval = 0
    ThreadThreshold = 10
    ResourcesCleanupInterval = 0
    FreeTextBatchSize = 100000
    SingleCPU = 0
    VADInstallDir = /usr/share/virtuoso/vad/
    PrefixResultNames = 0
    RdfFreeTextRulesSize = 100
    IndexTreeMaps = 256
    MaxMemPoolSize = 200000000
    PrefixResultNames = 0
    MacSpotlight = 0
    IndexTreeMaps = 64
    ;;
    ;; When running with large data sets, one should configure the Virtuoso
    ;; process to use between 2/3 to 3/5 of free system memory and to stripe
    ;; storage on all available disks.
    ;;
    ;; Uncomment next two lines if there is 2 GB system memory free
    ; NumberOfBuffers = 170000
    ; MaxDirtyBuffers = 130000
    ;; Uncomment next two lines if there is 4 GB system memory free
    NumberOfBuffers = 340000
    MaxDirtyBuffers = 250000

    ;; Uncomment next two lines if there is 8 GB system memory free
    ; NumberOfBuffers = 680000
    ; MaxDirtyBuffers = 500000
    ;; Uncomment next two lines if there is 16 GB system memory free
    ; NumberOfBuffers = 1360000
    ; MaxDirtyBuffers = 1000000
    ;; Uncomment next two lines if there is 32 GB system memory free
    ; NumberOfBuffers = 2720000
    ; MaxDirtyBuffers = 2000000
    ;; Uncomment next two lines if there is 48 GB system memory free
    ; NumberOfBuffers = 4000000
    ; MaxDirtyBuffers = 3000000
    ;; Uncomment next two lines if there is 64 GB system memory free
    ; NumberOfBuffers = 5450000
    ; MaxDirtyBuffers = 4000000
    ;;
    ;; Note the default settings will take very little memory
    ;; but will not result in very good performance
    ;;
    ;NumberOfBuffers = 10000
    ;MaxDirtyBuffers = 6000
    [HTTPServer]
    ServerPort = 8890
    ServerRoot = /var/lib/virtuoso/vsp
    ServerThreads = 20
    DavRoot = DAV
    EnabledDavVSP = 0
    HTTPProxyEnabled = 0
    TempASPXDir = 0
    DefaultMailServer = localhost:25
    ServerThreads = 10
    MaxKeepAlives = 10
    KeepAliveTimeout = 10
    MaxCachedProxyConnections = 10
    ProxyConnectionCacheTimeout = 15
    HTTPThreadSize = 280000
    HttpPrintWarningsInOutput = 0
    Charset = UTF-8
    ;HTTPLogFile = logs/http14052013.log
    http://localhost:8890/dataspace
    [AutoRepair]
    BadParentLinks = 0

    [Cl127.0.0.ient]
    SQL_PREFETCH_ROWS = 100
    SQL_PREFETCH_BYTES = 16000
    SQL_QUERY_TIMEOUT = 0
    SQL_TXN_TIMEOUT = 0
    ;SQL_NO_CHAR_C_ESCAPE = 1
    ;SQL_UTF8_EXECS = 0
    ;SQL_NO_SYSTEM_TABLES = 0
    ;SQL_BINARY_TIMESTAMP = 1
    ;SQL_ENCRYPTION_ON_PASSWORD = -1

    [VDB]
    ArrayOptimization = 0
    NumArrayParameters = 10
    VDBDisconnectTimeout = 1000
    KeepConnectionOnFixedThread = 0

    [Replication]
    ServerName = db-BUILDVM-17
    ServerEnable = 1
    QueueMax = 50000

    ;
    ; Striping setup
    ;
    ; These parameters have only effect when Striping is set to 1 in the
    ; [Database] section, in which case the DatabaseFile parameter is ignored.
    ;
    ; With striping, the database is spawned across multiple segments
    ; where each segment can have multiple stripes.
    ;
    ; Format of the lines below:
    ; Segment = , [, .. ]
    ;
    ; must be ordered from 1 up.
    ;
    ; The is the total size of the segment which is equally divided
    ; across all stripes forming the segment. Its specification can be in
    ; gigabytes (g), megabytes (m), kilobytes (k) or in database blocks
    ; (b, the default)
    ;
    ; Note that the segment size must be a multiple of the database page size
    ; which is currently 8k. Also, the segment size must be divisible by the
    ; number of stripe files forming the segment.
    ;
    ; The example below creates a 200 meg database striped on two segments
    ; with two stripes of 50 meg and one of 100 meg.
    ;
    ; You can always add more segments to the configuration, but once
    ; added, do not change the setup.
    ;http://localhost:8890/dataspace
    [Striping]
    Segment1 = 100M, db-seg1-1.db, db-seg1-2.db
    Segment2 = 100M, db-seg2-1.db
    ;…
    ;[TempStriping]
    ;Segment1 = 100M, db-seg1-1.db, db-seg1-2.db
    ;Segment2 = 100M, db-seg2-1.db
    ;…
    ;[Ucms]
    ;UcmPath =
    ;Ucm1 =
    ;Ucm2 =
    ;…

    [Zero Config]
    ServerName = virtuoso (BUILDVM-17)
    ;ServerDSN = ZDSN
    ;SSLServerName =
    ;SSLServerDSN =

    [Mono]
    ;MONO_TRACE = Off
    ;MONO_PATH =
    ;MONO_ROOT =
    ;MONO_CFG_DIR =
    ;virtclr.dll =

    [URIQA]
    DynamicLocal = 0
    DefaultHost = localhost:8890

    [SPARQL]
    ;ExternalQuerySource = 1
    ;ExternalXsltSource = 1
    ;DefaultGraph = http://localhost:8890/dataspace
    ;ImmutableGraphs = http://localhost:8890/dataspace
    ResultSetMaxRows = 10000
    MaxQueryCostEstimationTime = 400 ; in seconds
    MaxQueryExecutionTime = 60 ; in seconds
    DefaultQuery = select distinct ?Concept where {[] a ?Concept} LIMIT 100
    DeferInferenceRulesInit = 0 ; controls inference rules loading
    ;PingService = http://rpc.pingthesemanticweb.com/

    [Plugins]
    ;LoadPath = /usr/lib64/virtuoso/hosting
    ;Load1 = plain, wikiv
    ;Load2 = plain, mediawiki
    ;Load3 = plain, creolewiki
    ;Load4 = plain, im
    ;Load5 = plain, wbxml2
    ;Load6 = plain, hslookup
    ;Load7 = attach, libphp5.so
    ;Load8 = Hosting, hosting_php.so
    ;Load9 = Hosting,hosting_perl.so
    ;Load10 = Hosting,hosting_python.so
    ;Load11 = Hosting,hosting_ruby.so
    ;Load12 = msdtc,msdtc_sample

    1. ОзимОзим Автор записи

      команда
      ozim@ozim-kde:~$ locate virtuoso
      /home/ozim/.kde/share/apps/nepomuk/repository/main/soprano-virtuoso-temp.db
      /home/ozim/.kde/share/apps/nepomuk/repository/main/soprano-virtuoso.db
      /home/ozim/.kde/share/apps/nepomuk/repository/main/soprano-virtuoso.lock
      /home/ozim/.kde/share/apps/nepomuk/repository/main/soprano-virtuoso.log
      /home/ozim/.kde/share/apps/nepomuk/repository/main/soprano-virtuoso.pxa
      /home/ozim/.kde/share/apps/nepomuk/repository/main/soprano-virtuoso.trx
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso-temp.db
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.db
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.lock
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.log
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.pxa
      /home/ozim/.kde/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.trx
      /lib/modules/3.5.0-27-generic/kernel/sound/pci/oxygen/snd-virtuoso.ko
      /lib/modules/3.8.0-19-generic/kernel/sound/pci/oxygen/snd-virtuoso.ko
      /lib/modules/3.8.0-20-generic/kernel/sound/pci/oxygen/snd-virtuoso.ko
      /usr/bin/virtuoso-t
      /usr/lib/soprano/libsoprano_virtuosobackend.so
      /usr/share/doc/virtuoso-minimal
      /usr/share/doc/virtuoso-opensource-6.1-bin
      /usr/share/doc/virtuoso-opensource-6.1-common
      /usr/share/doc/virtuoso-minimal/AUTHORS
      /usr/share/doc/virtuoso-minimal/NEWS.gz
      /usr/share/doc/virtuoso-minimal/README.gz
      /usr/share/doc/virtuoso-minimal/changelog.Debian.gz
      /usr/share/doc/virtuoso-minimal/copyright
      /usr/share/doc/virtuoso-opensource-6.1-bin/AUTHORS
      /usr/share/doc/virtuoso-opensource-6.1-bin/NEWS.gz
      /usr/share/doc/virtuoso-opensource-6.1-bin/README.gz
      /usr/share/doc/virtuoso-opensource-6.1-bin/changelog.Debian.gz
      /usr/share/doc/virtuoso-opensource-6.1-bin/copyright
      /usr/share/doc/virtuoso-opensource-6.1-common/AUTHORS
      /usr/share/doc/virtuoso-opensource-6.1-common/NEWS.gz
      /usr/share/doc/virtuoso-opensource-6.1-common/README.gz
      /usr/share/doc/virtuoso-opensource-6.1-common/changelog.Debian.gz
      /usr/share/doc/virtuoso-opensource-6.1-common/copyright
      /usr/share/man/man1/virtuoso-t.1.gz
      /usr/share/soprano/plugins/virtuosobackend.desktop
      /usr/src/linux-headers-3.8.0-19-generic/include/config/snd/virtuoso.h
      /usr/src/linux-headers-3.8.0-20-generic/include/config/snd/virtuoso.h
      /var/lib/dpkg/info/virtuoso-minimal.list
      /var/lib/dpkg/info/virtuoso-minimal.md5sums
      /var/lib/dpkg/info/virtuoso-opensource-6.1-bin.list
      /var/lib/dpkg/info/virtuoso-opensource-6.1-bin.md5sums
      /var/lib/dpkg/info/virtuoso-opensource-6.1-common.list
      /var/lib/dpkg/info/virtuoso-opensource-6.1-common.md5sums

  5. Сергей

    посмотри ка просто /tmp/virtuoso… что-то там.ini (только через ls или диспетчер файлов) (locate ищет только в жестко заданных папках).

    у меня там ещё один ini — /tmp/virtuoso_kn1848.ini
    В этом файле у меня настройки от nepomuk сохранены. туда можно добавить надстройки из приведённого выше листинга. А вообще может быть стоит вручную создать нужный ini файл и попробовать позапускать с ним virtuoso-t

  6. Сергей

    Кстати, с этого надо было начать — в «Параметры системы» -> «Внешний вид и поведение среды рабочего стола» -> «Поиск по меткам и содержимому» лазел, настройки там видел? Или нет вовсе этого?

    1. ОзимОзим Автор записи

      да лазил, там есть только ограничение памяти..
      /tmp это папка с временными файлами, и там тоже пусто :) создавать руками как то ссыкотно. включил его, щас потестю, может в 13.04 уже не грузит так проц.

    2. ОзимОзим Автор записи

      ах да, и это еще он не индексирует, уже закончил))

    3. ОзимОзим Автор записи

      ну вот он закончил индексировать, но по прежнему жрет уже 25%, я беру кусок текста из текстового файла, вбиваю его в поиск и… нифига он не находит. В топку его.

  7. Сергей

    У меня находит, Жаль квалификации разобраться в чём проблема не хватает. Но свой работать заставил, посмотрю что будет после окончания индексации.

    1. ОзимОзим Автор записи

      в любом случае — спасибо :) да мне он и не нужен, на самом деле, если мне и надо что то найти в файлах — так это в php файлах, а там я ищу редактором

Комментарии запрещены.