Дек 252012
 

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

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

Дорогие читатели! Мною было принято решение закрыть комментарии на блоге. Теперь все обсуждения переносятся на недавно открытый форум, ввиду того, что формат сообщений там намного удобней для обсуждения. Не стесняйтесь задавать любые вопросы по тематике блога! Я всегда на связи.
Перейти на форум
.

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

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

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

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

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

        • у меня выдало

          /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 должен работать только на одном ядре).
    Продолжение следует.

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

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

        • вот
          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)

          • Значит будем шаманить с бубном:
            Что у тебя выдаёт на: 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

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

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

    • http://tluk.ru/viewpic/17217/
      такая же кака и осталсь ) грузить 15% 4х ядерного проца это жестоко))

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

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

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

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

Извините, форма комментирования закрыта в данный момент.